[asm] 내 PID얻기 코드

[asm] 내 PID얻기 코드

태그
linux
shell
asm
생성 일시
Apr 13, 2024 12:29 PM
최종 편집 일시
Last updated April 13, 2024
Date
extern printf section .data msg db "PID = %d", 10, 0 section .text global main main: ; 스택 프레임 설정 push rbp mov rbp, rsp sub rsp, 32 ; 스택 공간 확보 (예시로 32바이트 할당) ; getpid 시스템 호출 (시스템 호출 번호 39) xor rax, rax mov rax, 39 syscall ; printf 호출 준비 mov rsi, rax ; printf의 첫 번째 인자로 PID 전달 mov rdi, msg ; printf의 두 번째 인자로 메시지 전달 mov rax, 0 ; 가변 인자 함수를 위해 rax를 0으로 설정 call printf ; 스택 정리 및 복구 mov rsp, rbp pop rbp ; 정상 종료 xor rax, rax xor rbx, rbx mov rax, 60 ; exit 시스템 호출 번호는 64비트에서 60 xor rdi, rdi ; exit 코드 0 syscall
nasm -f elf64 test.asm gcc -o test test.o -no-pie ./test
gcc를 링커로 쓴 이유는 printf 때문입니다.
참고문헌