$ sudo apt intall nasm
section .data ;data섹션
msg db "hello world", 0x0A
_main :
mov rax, 1 ;리눅스의 syscall write()함수 번호 (맥에서는 0x2000004)
mov rdi, 1
mov rsi, msg
mov rdx, 12
syscall
mov rax, 60 ;리눅스의 syscall exit()함수 번호 (맥에서는 0x2000001)
mov rdi, 0
syscall
section .text ;text섹션
global _main ;전역에서 접근 가능
_main
이 아니라 main
으로 사용해도 된다 ( 언더바는 맥 환경에서)nasm -f elf64 hello.s
elf64
대신 macho64
를 쓰자ld hello.o -o hello
ld: warning: cannot find entry symbol _start;
이런 오류메세지가 뜨는데 (떠도 컴파일은 됨!!!) 이는 _main
을 썼기 때문 -> _main
을 _start
로 고치면 오류가 뜨지 않는다../hello
결과를 보면 잘 나온당
세그폴트가 떠요 선생님..! ㅠㅠ