본문 바로가기

Programming Language/Assembly

[Assembly] 어셈블리 Test5

실행환경

- cpu : 인텔계열(64bit)

- 컴파일러 : nasm

- 리눅스 : ubuntu 16.04 LTS


설치방법

sudo apt-get install nasm


컴파일

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

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


문제 : 변수 x가 문자타입 숫자(‘0’~‘9’)일 때 true 출력


test5.asm

section .data


first db 'Input : '


len1 equ $ -first


true db 'true!'


len2 equ $ -true


false db 'false!'


len3 equ $ -false


newLine db 0x0a




section .bss


char1 resb 1


temp 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:


write first,len1


read char1,1


read temp,1




mov al,[char1]




cmp al,'0'


jl _falseFunc


cmp al,'9'


jg _falseFunc




write true,len2


write newLine,1




jmp _exit




_falseFunc:


write false,len3


write newLine,1




_exit:


mov eax,1


int 0x80









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

[Assembly] 어셈블리 Test7  (0) 2016.12.04
[Assembly] 어셈블리 Test6  (0) 2016.12.04
[Assembly] 어셈블리 Test4  (0) 2016.12.04
[Assembly] 어셈블리 Test3  (0) 2016.12.04
[Assembly] 어셈블리 Test2  (0) 2016.12.04