天天看點

彙編語言版本的HelloWorld

平台

  • 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
下一篇: launchctl

繼續閱讀