실행환경
- cpu : 인텔계열(64bit)
- 컴파일러 : nasm
- 리눅스 : ubuntu 16.04 LTS
설치방법
- sudo apt-get install nasm
컴파일
- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.
- ld 파일명.o -o 파일명 --> 실행파일을 만든다.
macro.asm
section .bss
num resb 1
temp resb 1
section .data
msg db "hello",0x0a
len equ $ -msg
msg1 db "hi",0x0a
len1 equ $ -msg1
end db 0x0a
section .test
global _start
;매크로 사용
%macro write 2
mov eax,4
mov ebx,1
mov ecx,%1
mov edx,%2
int 0x80
%endmacro
%macro read 2
mov eax,3
mov ebx,1
mov ecx,%1
mov edx,%2
int 0x80
%endmacro
_start:
write msg,len
write msg1,len1
read num,1
call _tempFunc
write num,1
call _endFunc
mov eax,1
int 0x80
_tempFunc:
mov eax,3
mov edx,1
mov ecx,temp
mov edx,1
int 0x80
ret
_endFunc:
mov eax,4
mov edx,1
mov ecx,end
mov edx,1
int 0x80
ret
'Programming Language > Assembly' 카테고리의 다른 글
[Assembly] 재귀함수 구현 (0) | 2016.12.04 |
---|---|
[Assembly] 최대값 구하기 (0) | 2016.12.04 |
[Assembly] 숫자 곱하기 (0) | 2016.12.04 |
[Assembly] 숫자 빼기 (0) | 2016.12.04 |
[Assembly] 숫자 나누기(몫과 나머지 출력) (0) | 2016.12.04 |