본문 바로가기

Programming Language/Assembly

[Assembly] 어셈블리 문제3

실행환경

- cpu : 인텔계열(64bit)

- 컴파일러 : nasm

- 리눅스 : ubuntu 16.04 LTS


설치방법

sudo apt-get install nasm


컴파일

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

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


3. 정삼각형을 만들어라

   *

  ***

 *****

*******


exam3.asm

section .data


star db '*'


ent db 0x0A


space db ' '




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,4


mov rbx,1


mov rdx,3




_lp:


push rdx


push rbx


push rcx


push rbx


mov rcx,rdx


cmp rcx,0


je _jp




_lp2:


push rcx


write space,1




pop rcx




loop _lp2




_jp:


pop rcx




_lp3:


push rcx


write star,1



pop rcx



loop _lp3



write ent,1


pop rcx


pop rbx


pop rdx


dec rdx


add rbx,2


loop _lp




_exit:


mov eax,1


int 0x80







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

[Assembly] 어셈블리 문제5  (0) 2016.12.05
[Assembly] 어셈블리 문제4  (0) 2016.12.05
[Assembly] 어셈블리 문제2  (0) 2016.12.05
[Assembly] 어셈블리 문제1  (0) 2016.12.05
[Assembly] 어셈블리 Test21  (0) 2016.12.05