Tay*_*ton 7 macos assembly irvine32
我目前正在学习汇编课程,我必须在 Mac OS X 上运行代码,但我不知道如何在 Mac OS X 上运行代码
\n\n这是代码:
\n\n; Description: This program adds and subtracts 16\xe2\x80\x90bit integers.\n; Revision Date:\nINCLUDE Irvine32.inc\n.code\nmain PROC\nmov ax, 650 ; AX = 650h\nsub ax, 50h ; AX = 600h\nsub ax, 100h ; AX = 500h\nsub ax, 300h ; AX = 200h\ncall DumpRegs ; display registers\nexit\nmain ENDP\nEND main\nRun Code Online (Sandbox Code Playgroud)\n\n这是我收到的错误消息
\n\nTayvions-MacBook-Pro:~ tayvionpayton$ cd Documents/Code/\nTayvions-MacBook-Pro:Code tayvionpayton$ nasm -f macho32 -o0 assembly_Tp.asm \nassembly_Tp.asm:4: error: parser: instruction expected\nassembly_Tp.asm:5: warning: label alone on a line without a colon might be in error\nassembly_Tp.asm:6: error: parser: instruction expected\nassembly_Tp.asm:12: warning: label alone on a line without a colon might be in error\nassembly_Tp.asm:13: error: symbol `main' redefined\nassembly_Tp.asm:13: error: parser: instruction expected\nassembly_Tp.asm:14: error: parser: instruction expected\nTayvions-MacBook-Pro:Code tayvionpayton$ \nRun Code Online (Sandbox Code Playgroud)\n
汇编代码没有运行,它是:
gnu汇编程序,在以所谓的AT&T Syntax语法编写源代码时使用。参见天然气。gnu。3 以下是使用 NASM 的两步编译/链接的示例:
首先将源代码编译为目标文件。此示例是 32 位:
nasm -f macho32 -O0 helloworld.asm
Run Code Online (Sandbox Code Playgroud)
这将生成一个helloworld.o(对象)文件。然后您需要通过链接来完成此操作:
ld helloworld.o -o helloworld
Run Code Online (Sandbox Code Playgroud)
您现在可以运行./helloworld