실행환경
- cpu : 인텔계열(64bit)
- 컴파일러 : nasm
- 리눅스 : ubuntu 16.04 LTS
설치방법
- sudo apt-get install nasm
컴파일
- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.
- ld 파일명.o -o 파일명 --> 실행파일을 만든다.
문제 : 출력하고자 하는 구구단 단수를 입력받아 해당 단수의 구구단을 출력
반복적인 구구단 출력을 하고, 0을 입력하면 프로그램 종료
test17.asm
section .data
x db ' x '
lx equ $ -x
eq db ' = '
le equ $ -eq
ent db 0x0A
section .bss
num1 resb 1
num2 resb 1
res resb 2
t resb 1
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 num1,1
read t,1
mov al,[num1]
mov bl,'0'
_mul:
inc bl
mov [num1],al
mov [num2],bl
sub al,'0'
sub bl,'0'
mul bl
mov bl,10
div bl
add al,'0'
add ah,'0'
mov [res],al
mov [res+1],ah
write num1,1
write x,lx
write num2,1
write eq,le
write res,2
write ent,1
mov al,[num1]
mov bl,[num2]
cmp bl,'9'
je _exit
jmp _mul
_exit:
mov eax,1
int 0x80
'Programming Language > Assembly' 카테고리의 다른 글
[Assembly] 어셈블리 Test19 (0) | 2016.12.05 |
---|---|
[Assembly] 어셈블리 Test18 (0) | 2016.12.05 |
[Assembly] 어셈블리 Test16 (0) | 2016.12.05 |
[Assembly] 어셈블리 Test15 (0) | 2016.12.05 |
[Assembly] 어셈블리 Test14 (0) | 2016.12.05 |