실행환경
- cpu : 인텔계열(64bit)
- 컴파일러 : nasm
- 리눅스 : ubuntu 16.04 LTS
설치방법
- sudo apt-get install nasm
컴파일
- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.
- ld 파일명.o -o 파일명 --> 실행파일을 만든다.
문제6 : loop를 활용하여 문자 0~9 대문자 A~Z 소문자 a~z를 출력하시오
exam6.asm
section .data
n db '0'
b db 'A'
s db 'a'
space db ' '
ent db 0x0A
section .bss
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:
mov rcx,62
_lp:
push rcx
cmp rcx,52
jg _n
cmp rcx,26
jg _b
jmp _s
_lop:
loop _lp
jmp _exit
_n:
write n,1
mov al,[n]
inc al
mov [n],al
pop rcx
push rcx
cmp rcx,53
je _ent
jmp _loop
_ent:
write ent,1
pop rcx
_loop:
jmp _lop
_b:
write b,1
mov al,[b]
inc al
mov [b],al
pop rcx
push rcx
cmp rcx,27
je _ent
jmp _loop
_s:
write s,1
mov al,[s]
inc al
mov [s],al
pop rcx
push rcx
cmp rcx,1
je _ent
jmp _loop
_exit:
mov eax,1
int 0x80
'Programming Language > Assembly' 카테고리의 다른 글
[Assembly] 어셈블리 문제8 (0) | 2016.12.05 |
---|---|
[Assembly] 어셈블리 문제7 (0) | 2016.12.05 |
[Assembly] 어셈블리 문제5 (0) | 2016.12.05 |
[Assembly] 어셈블리 문제4 (0) | 2016.12.05 |
[Assembly] 어셈블리 문제3 (0) | 2016.12.05 |