본문 바로가기

Programming Language/Assembly

[Assembly] Hello World 출력하기

실행환경

- cpu : 인텔계열(64bit)

- 컴파일러 : nasm

- 리눅스 : ubuntu 16.04 LTS


설치방법

- sudo apt-get install nasm


컴파일

- nasm -f elf64 파일명.asm -o 파일명.o  --> 목적파일을 만든다.

- ld 파일명.o -o 파일명  --> 실행파일을 만든다.


ex1_1.asm

section .data        ;데이터 영역

msg db "Hello World" , 0x0A     ;msg == 변수 이름 , db == 데이터 타입(byte) , 0x0a  == 개행문자

  ;db == byte(1바이트) , dw == word(4바이트) , dd == double(8   바이트)


section .text

global _start


_start:

mov eax, 4        ;4번은 sys_write

mov ebx, 1        ;1은 정상적으로 성공했다는 의미 

mov ecx, msg

mov edx, 12      ; msg 의 길이

int 0x80          ; 실행을 하기위한 인터럽트 호출


mov eax, 1       ; 1번은 sys_exit

mov ebx, 0

int 0x80





'Programming Language > Assembly' 카테고리의 다른 글

[Assembly] 문자열 변환  (0) 2016.12.04
[Assembly] * 찍어보기  (0) 2016.12.04
[Assembly] 어셈블리 명령어  (0) 2016.12.04
[Assembly] syscall table for x86_64  (0) 2016.12.04
[Assembly] syscall table for x86  (0) 2016.12.04