CS/Assembly
Assembly -3. 간단한 에코 프로그램
bonggang
2020. 5. 25. 02:17
목표: 키보드로 입력받은 메세지를 다시 출력하는 기본 프로그램 제작
소스 코드
section .text
global _start
_start:
sub rsp, 100
mov rax, 0
mov rdi, 0
mov rsi, rsp
mov rdx, 99
syscall
mov rax, 1
mov rdi, 1
mov rsi, rsp
mov rdx, 99
syscall
mov rax, 60
syscall
5줄) sub rsp, 100: 입력받을 버퍼 공간 할당
7~11줄) 사용자 값 입력
mov rax, 0: 읽기 위한(sys_read) system call의 rax 값은 0이다.
mov rdi, 0: sys_read의 rdi 값은 *file description 값인데 standard input 값은 0이다.
* 0: standard input, 1: standard output, 2: standard error
mov rsi, rsp: 버퍼 위치
mov rdx, 99: 99개만큼 받을 수 있다.
syscall에 대해 더 자세히 확인하고 싶으면 아래 주소 참고
https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/
13~17줄) 입력 받은 값 출력
실행 결과