본문 바로가기

[Assembly] 문자열 변환 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. ex1_6.asmSYS_WRITE equ4;#define SYS_WRITE 4와 같은 의미SYS_STDOUT equ 1SYS_READ equ3SYS_EXIT equ1 section .datamsg db 'hello world 'len equ $ -msgend db 0x0a section .bss section .textglobal _start _start:mov eax,SYS_WRITEmov e.. 더보기
[Assembly] * 찍어보기 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. ex1_2.asmsection .data msg db "star 10 ", 0x0A len equ $ -msg;msg의 길이를 len이라는 변수가 가지는데 ;equ는 상수란 의미이다. 쉽게 equ는 equal와 같으며;$ -변수 은 변수의 길이를 구하기 위한 명령어라 생각하자;즉 len = $ -msg 은 msg의 길이가 상수로 len에 대입된다. star times 10 db '*'; time.. 더보기
[Assembly] Hello World 출력하기 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. ex1_1.asmsection .data ;데이터 영역msg db "Hello World" , 0x0A ;msg == 변수 이름 , db == 데이터 타입(byte) , 0x0a == 개행문자 ;db == byte(1바이트) , dw == word(4바이트) , dd == double(8 바이트) section .textglobal _start _start:mov eax, 4 ;4번은 sys_w.. 더보기
[Assembly] 어셈블리 명령어 어셈블리 명령어는 다음과 같다. 더보기