프로그래밍 언어/어셈블리언어 3

어셈블리언어 변수선언하기

안녕하세요 . 오늘은 어셈블리언어 변수선언을 해보겠습니다 변수선언은 section .bss와 section .data에 합니다 section .bss 초기화하지 않은 변수를 선언합니다. 변수를 선언할때 변수의 크기를 넣어줘야합니다. resb 1byte resw 2byte resd 4byte resq 8byte resb(Reserve Byte) resw(Reserve Word) resd(Reserve Doubleword) resq(Reserve Quadword) 선언은 「변수명 크기 개수」순서로 하면 됩니다. 1 2 3 section .bss i resb 1 ; 크기가 1byte이고 변수명이 i이고 1개 선언 j resw 2 ; 크기가 2byte이고 변수명이 j이고 2개 선언 cs section. data..

어셈블리언어로 HELLO WORLD 출력하기

어셈블리언어로 HELLO WORLD 출력해보겠습니다 사용할 컴파일러는 SASM입니다. 설치를 하고 Settings옵션에 들어가서 아래처럼 설정합니다 NASM은 리눅스, MAC, 윈도우에서 지원하는 무료 어셈블러입니다. 세팅을 하고 새 프로젝트를 만듭니다 1 2 3 4 5 6 7 8 9 10 11 12 %include "io64.inc" section .text global CMAIN CMAIN: ;write your code here xor rax, rax ret Colored by Color Scripter cs 1번째줄은 매크로 함수를 인클루드 하는것입니다. 5번째줄에 보면 section .text이 있는데 section은 코드를 작성할때 부분부분 나눠서 작성하는 곳입니다 일단 크게 3가지로 나눠보겠..

어셈블리어란?

안녕하세요. 오늘은 어셈블리어에 대해 알아보겠습니다 어셈블리어란 기계어랑 1:1 매칭이 가능한 언어입니다. 기계어란 CPU가 직접 사용하는 언어이고 1000 0000 1000 0000이런 식으로 숫자로 되어있습니다. 그래서 코딩을 하다가 예상한 대로 동작을 안 할 때, 어셈블리어를 보면 CPU가 동작을 어떻게 하는지 정확히 알 수 있습니다. 어셈블리언어에는 표기하는 방법이 크게 두 가지가 있습니다. INTEL과 AT&T표기법입니다. INTEL표기법은 윈도우OS에서 많이 사용되고 AT&T표기법은 리눅스에서 많이 사용합니다. 일단 기본적으로 어셈블리언어는 아래의 포맷을 따릅니다 opcode operand1 operand2 opcode(연산코드): CPU가 수행할 동작을 나타내는 코드 operand(피연산자)..