mac下汇编入门(一)

1,197 阅读1分钟

查看nasm版本

终端:

nasm -v nasm现在最新版本是2.13.02

nasm升级

终端输入:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

上述命令执行完毕后,输入如下命令

brew install nasm

4、将MAC重新启动,在终端中输入

nasm -v 这时应该显示最新的nams了

输出hello world

新建一个 hello.s文件替换里面内容、上代码。

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

终端 cd 对应的hello.s文件 生成.o文件

nasm -f macho64 hello.s

第二步:链接

gcc hello.o -o hello

ld -e _main hello.o -o hello

执行文件

./hello

汇编并链接

nasm -f macho64 hello.s && gcc hello.o -o hello

或者

nasm -f macho64 hello.s && ld -e _main hello.o -o hello

&&的作用是连接多条命令,但某一条命令失败(返回值不为0),就不再执行后面的命令。和之前提到的分号(;)不同,分号不管成功与否都会依次执行命令。