我想写第一个汇编程序。我已经在论文上完成了一些程序,但这是我第一次使用编译器。我正在使用ideone。我的程序很简单,
将A = 5 - A
翻译成大会
NEG A
ADD A, 5
现在我想运行这个程序并检查它。如何使用编译器执行此操作?请帮帮我。感谢
答案 0 :(得分:2)
您提供的网站似乎不能运行此代码,因为它设置了特定的语言。汇编不是一种语言,而是一系列处理器指令。下载8086模拟器以运行它。
答案 1 :(得分:2)
这不是8086汇编语言。至少,它不是我所知道的任何汇编语法。
A
是内存位置,则需要在某处找到标签。你需要让汇编程序知道它应该是一个字指针,因为你没有将它放在寄存器中。 (寄存器大小可以使指针语义明显,但你不在这里使用寄存器。:P)相应的8086代码(非常相似)将是
neg ax
add ax, 5
或者,对于记忆:
neg word [A]
add word [A], 5
... other stuff here ...
A: resw 1 ; some assemblers say this; others say `dw ?`
(MASM有时可以没有括号。我不知道MASM语法,所以希望其他人可以清除那部分。哦,这并不是每个其他汇编程序做事的方式。:P)
现在,有了这个,您需要一个汇编程序(如Yasm)将该代码转换为可执行文件。 (但是你需要更多的代码。你在这里拥有的东西,将无法正常运行。至少,你需要一个ret
,以便CPU不会在轨道上运行。)您可以想象使用编译器并将所有内容嵌入__asm
块(或编译器的等效块)中,但如果您使用纯汇编语言编写,通常不会这样做。这有点像用大锤砸钉子。
答案 2 :(得分:-1)
开始使用emu8086,在8086的程序集中编程会更容易