본문 바로가기

[Assembly] 구구단 출력 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. row_loop.asm;반복문인 loop를 배운다section .dataend db 0x0Astar db '*'len1 equ $ -starequl db '='len2 equ $ -equlspace db 0x09len3 equ $ -space section .bssnum1 resb 1num2 resb 1res resb 1 section .textglobal _start _start:;loop에서.. 더보기
[Assembly] 재귀함수 구현 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : 3! 구해보기 , 4!이상은 결과값이 10이상이므로 따로 처리를 해줘야 된다.reclusive.asmsection .bssonum resb 2result resb 5section .datainum db "Input num : "len equ $ -inumend db 0x0asection .textglobal _start %macro write 2mov eax,4mov ebx,1mov e.. 더보기
[Assembly] 최대값 구하기 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. max.asmsection .datafirst db "first : "len1 equ $ -firstsecond db "second :"len2 equ $ -second section .bssnum1 resb 5num2 resb 5 section .textglobal _start _start:mov eax,4mov ebx,1mov ecx,firstmov edx,len1int 80h mov eax.. 더보기
[Assembly] 매크로 사용해보기 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. macro.asmsection .bss num resb 1 temp resb 1 section .data msg db "hello",0x0a len equ $ -msg msg1 db "hi",0x0a len1 equ $ -msg1 end db 0x0a section .test global _start ;매크로 사용 %macro write 2 mov eax,4 mov ebx,1 mov ecx,%1.. 더보기