실행환경
- cpu : 인텔계열(64bit)
- 컴파일러 : nasm
- 리눅스 : ubuntu 16.04 LTS
설치방법
- sudo apt-get install nasm
컴파일
- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.
- ld 파일명.o -o 파일명 --> 실행파일을 만든다.
EvenOddcmp.asm
section .data
num db "num : "
len1 equ $ -num
even db "even"
len2 equ $ -even
odd db "odd"
len3 equ $ -odd
end db 0ah
section .bss
input resb 1
temp resb 1
section .text
global _start
_start:
;num 출력
mov eax,4
mov ebx,1
mov ecx,num
mov edx,len1
int 0x80
;num 입력
mov eax,3
mov ebx,1
mov ecx,input
mov edx,1
int 0x80
mov eax,3
mov ebx,1
mov ecx,temp
mov edx,1
int 80h
mov al,[input]
sub al,'0'
mov bl,2
div bl
cmp ah,0
je evenFunc
cmp ah,1
je oddFunc
jmp _exit
evenFunc:
mov eax,4
mov ebx,1
mov ecx,even
mov edx,len2
int 80h
call endFunc
jmp _exit
oddFunc:
mov eax,4
mov ebx,1
mov ecx,odd
mov edx,len3
int 80h
call endFunc
jmp _exit
_exit:
mov eax,1
int 0x80
ret
endFunc:
mov eax,4
mov ebx,1
mov ecx,end
mov edx,1
int 0x80
ret
'Programming Language > Assembly' 카테고리의 다른 글
[Assembly] 배열선언 및 숫자더하기 (0) | 2016.12.04 |
---|---|
[Assembly] 숫자 더하기 (0) | 2016.12.04 |
[Assembly] 짝수 홀수 판별1 (0) | 2016.12.04 |
[Assembly] 문자열 변환 (0) | 2016.12.04 |
[Assembly] * 찍어보기 (0) | 2016.12.04 |