汇编语言版本的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
posted @ 2018-09-24 15:24  gogogo11  阅读(548)  评论(0编辑  收藏  举报