平台
- macOS
工具
- nasm
- clang
檔案
- main.asm
extern _printf ; 這裡調用系統的一個系統調用函數, _printf, 使用extern告訴連結器該label在其他檔案中有定義, _printf隻接受一個string的位址, 和C語言層面上的printf是一樣的
section .data
msg_str: "Hello, World!!!", 0xa0 ; 0xa0就是C語言中的'\0'字元串結束符
section .text:
global _main
_main:
push ebp
mov ebp, esp
mov rsi, msg_str
call _printf
leave
ret
編譯與連結
- nasm -f macho64 main.asm
- clang -o main main.o