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

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

원원 2022. 4. 3. 16:48

어셈블리언어로 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
cs

1번째줄은 매크로 함수를 인클루드 하는것입니다.

5번째줄에 보면 section .text이 있는데 section은 코드를 작성할때 부분부분 나눠서 작성하는 곳입니다
일단 크게 3가지로 나눠보겠습니다
.text => 실행될 코드가 들어가있습니다.
.bss => 초기화 되지않은 변수가 들어가있습니다.
.data => 초기화된 변수가 들어가있습니다.

6,7번째줄은 프로그램 시작되는 주소를 정의하고 7번째줄부터 시작합니다.
11,12번째줄은 프로그램이 종료되는 지점이고 return과 유사합니다

C언어에 printf가있고 C#에 console.Writeln이 있듯이 SASM에도 PRINT_STRING을 사용하면 문자열 출력이 가능합니다. 아래처럼 코드를 작성하고 build and run을 하면 output에 HELLO WORLD가 출력됩니다

'프로그래밍 언어 > 어셈블리언어' 카테고리의 다른 글

어셈블리언어 변수선언하기  (0) 2022.04.05
어셈블리어란?  (0) 2022.04.01