실행환경
- 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 |