💻 Computer/🦖 Assembly [Assembly] Hello world 출력 - Assembly Hello World section .data msg db "hello world" ; data 영역에 msg라는 포인터 변수가 Hello world의 주소를 갖는다 section .text global_start ; text영역에 start함수 정의 _start: mov rax, 1 ; rax에 1입력 (System Call Write) mov rdi, 1 ; rdi에 1입력 (unsigned int fd) mov rsi, msg ; rsi에 데이터 영역에 있는 포인터 변수 msg입력 (const char *buf) mov rdx, 12 ; mov rdx, 12 (문자열의 글자 수) syscall ; System Call (sys_write) mov rax, 60 ; rax에 60입력 (System Call exit) mov rdi, 0 ; rdi 0입력 (error_code) syscall ; System Call (sys_exit) System Call이란 것은 커널에서 정의한 어셈블리 함수이다 밑의 링크를 참고 하자 https://rninche01.tistory.com/entry/Linux-system-call-table-%EC%A0%95%EB%A6%ACx86-x64 Linux system call table 정리(32bit, 64bit) 어셈블리어로 쉘 코드를 작성할 때 종종 system call table을 찾아보는 일이 있어서 간략하게 정리하도록 하였다. system call 이란? 운영체제에서 커널 모드와 유저 모드로 나뉘게 되는데 유저 단에서 rninche01.tistory.com 공유하기 게시글 관리 말미잘지내 저작자표시 '💻 Computer > 🦖 Assembly' 카테고리의 다른 글 [Assembly] 반복문 (2) 2022.09.22 Contents 당신이 좋아할만한 콘텐츠 [Assembly] 반복문 2022.09.22 댓글 0 + 이전 댓글 더보기