我有以下文件hello.asm:
section .text
global _start ;must be declared for linker (ld)
_start: ;tells linker entry point
mov edx,len ;message length
mov ecx,msg ;message to write
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel
mov eax,1 ;system call number (sys_exit)
int 0x80 ;call kernel
section .data
msg db 'Hello, world!', 0xa ;our dear string
len equ $ - msg ;length of our dear string
在mac上,如何将其转换为.o文件。在linux上我会做
nasm -f elf64 -o hello.o hello.asm
ld -o hello hello.o
然后可以用
调用它 ./hello
我已经安装了Xcode和MacPorts,谢谢
答案 0 :(得分:1)
使用:
nasm -o hello.o hello.asm
应该可以工作,即生成.o文件。通常在OS X上,您可以执行以下操作:
nasm -f macho -o hello.o hello.asm