본문 바로가기

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 파일명  --> 실행파일을 만든다.


max.asm

section .data

first db "first : "

len1 equ $ -first

second db "second :"

len2 equ $ -second


section .bss

num1 resb 5

num2 resb 5


section .text

global _start


_start:

mov eax,4

mov ebx,1

mov ecx,first

mov edx,len1

int 80h


mov eax,3

mov ebx,1

mov ecx,num1

mov edx,len1

int 80h


mov eax,4

mov ebx,1

mov ecx,second

mov edx,len2

int 80h


mov eax,3

mov ebx,1

mov ecx,num2

mov edx,len2

int 80h

mov al,[num1]

sub al,'0'

mov bl,[num2]

sub bl,'0'


cmp al,bl

ja rightFunc

cmp al,bl

jb leftFunc


rightFunc:

mov eax,4

mov ebx,1

mov ecx,num1

mov edx,5

int 80h


jmp _exit


leftFunc:

mov eax,4

mov ebx,1

mov ecx,num2

mov edx,5

int 80h


jmp _exit

_exit:

mov eax,1

int 80h


'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