실행환경
- cpu : 인텔계열(64bit)
- 컴파일러 : nasm
- 리눅스 : ubuntu 16.04 LTS
설치방법
- sudo apt-get install nasm
컴파일
- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.
- ld 파일명.o -o 파일명 --> 실행파일을 만든다.
ex1_6.asm
SYS_WRITE equ 4 ;#define SYS_WRITE 4와 같은 의미
SYS_STDOUT equ 1
SYS_READ equ 3
SYS_EXIT equ 1
section .data
msg db 'hello world '
len equ $ -msg
end db 0x0a
section .bss
section .text
global _start
_start:
mov eax,SYS_WRITE
mov ebx,SYS_STDOUT
mov ecx,msg
mov edx,len
int 0x80
mov eax,SYS_WRITE
mov ebx,SYS_STDOUT
mov ecx,end
mov edx,1
int 0x80
mov [msg] , dword 'Hi' ;[]대괄호 의미는 자기 자신의 주소를 나타낸다.
;dword --> 4byte
mov eax,SYS_WRITE
mov ebx,SYS_STDOUT
mov ecx,msg
mov edx,len
int 0x80
mov eax,SYS_WRITE
mov ebx,SYS_STDOUT
mov ecx,end
mov edx,1
int 0x80
mov eax,SYS_EXIT
int 0x80
'Programming Language > Assembly' 카테고리의 다른 글
[Assembly] 짝수 홀수 판별2 (0) | 2016.12.04 |
---|---|
[Assembly] 짝수 홀수 판별1 (0) | 2016.12.04 |
[Assembly] * 찍어보기 (0) | 2016.12.04 |
[Assembly] Hello World 출력하기 (0) | 2016.12.04 |
[Assembly] 어셈블리 명령어 (0) | 2016.12.04 |