본문 바로가기

Programming Language/Assembly

[Assembly] 매크로 사용해보기

실행환경

- 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