본문 바로가기

Programming Language/Assembly

[Assembly] 짝수 홀수 판별2

실행환경

- 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