어셈블리어로 에코 프로그램 만들기
입력한 문자열을 그대로 출력해주는 프로그램이 에코 프로그램
터미널을 키고 nano echo s
똑같은 값을 xor하면 반드시 0나오게 됨
xor은 두개 중 한개만 1일때 1을 출력
section .text
global _start
_start:
xor rax, rax
mov rbx, rax
mov rcx, rax
mov rdx, rax
sub rsp, 64
mov rdi, 0
mov rsi, rsp
mov rdx, 63
syscall
mov rax, 60
syscall
rdi에 0을 넣어 읽을 수 있게 해주었고 rsi는 어떤 문자열을 의미, 시작점 rdx는 얼마나 가져올지
rax 60은 sys_exit이다
이제 이 코드를 파일화를 해주자
nasm -f elf64 -o echo.o echo.s
ld -o echo echo.o
./echo
하면 이제 입력한대로 똑같이 출력되는 것을 볼 수 있다