본문 바로가기

Programming Language/Assembly

[Assembly] 어셈블리 Test14

실행환경

- cpu : 인텔계열(64bit)

- 컴파일러 : nasm

- 리눅스 : ubuntu 16.04 LTS


설치방법

sudo apt-get install nasm


컴파일

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

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



문제 : 사용자로부터 숫자를 입력 받아, 그 수만큼 Hello World! 를 출력


test14.asm

section .data


hi db 'Hello World!'


lh equ $ -hi




ent db 0x0A




section .bss


num resb 2




section .text


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:


read num,1




mov rcx,[num]


sub rcx,'0'




_l1:


push rcx




write hi,lh


write ent,1



pop rcx


loop _l1




_exit:


mov eax,1


int 0x80


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

[Assembly] 어셈블리 Test16  (0) 2016.12.05
[Assembly] 어셈블리 Test15  (0) 2016.12.05
[Assembly] 어셈블리 Test13  (0) 2016.12.05
[Assembly] 어셈블리 Test12  (0) 2016.12.05
[Assembly] 어셈블리 Test11  (0) 2016.12.05