如何在MacOS上玩儿汇编?

在Mac上写汇编还是相当方便的。本文通过写一个Helloworld程序来入门。


首先,MacOS 自带nasm,只是版本有点老,编译不了64位程序,只要上官网下一个最新的,替换一下就行了。

有一点需要注意的是mac上gcc编译.o文件的默认入口是_main,而使用ld命令的时候默认的事start.


下面创建helloworld.asm文件:

SECTION .data
   
msg: db "hello world!", 0x0a
len: equ $-msg
  
SECTION .text
global _main
  
kernel:
     syscall
     ret
 
_main:
     mov rax,0x2000004
     mov rdi,1
     mov rsi,msg
     mov rdx,len
     call kernel
  
     mov rax,0x2000001
     mov rdi,0
     call kernel


在终端运行以下语句


nasm -f macho64 -o helloworld.o helloworld.asm
ld -o helloworld -e _main helloworld.o
./helloworld


显示hello world! 就是成功了!


你可能感兴趣的:(汇编语言)