我们如何把程序指令c = a-b;在机器代码说明?我已经提供了操作码,存储器地址为a = 80,b = 81,c = 82,程序计数器= 30 hex。指令是16位长,4位操作码,4位用于寄存器,16位用于存储器地址。
我只需知道它是如何开始的正式方式。这是因为我真的不明白我的讲师教的是什么。如果我能得到一个明确的方向,那么我有信心,如果没有我的讲师的帮助,我可以做到这一点。
答案 0 :(得分:1)
助记符看起来像这样:
mov eax, [a] ; move 4 bytes starting at address a to the eax register
sub eax, [b] ; subtract 4 bytes starting at memory address b from the eax register
mov [c], eax ; move the contents of the eax register to the memory address of c
您可以在操作码中替换操作(mov
,sub
),(eax
)的寄存器地址,(a
的内存地址,{{1 },b
)然后结果是实际的机器指令。我假设你的数字是32位整数,所以我使用32位长的eax寄存器用于x86处理器,但你使用哪个寄存器的具体信息是任意的,只要它足够大以容纳你的数。 c
指令将读取寄存器可以保存的字节数,从提供的存储器地址开始。
对于此示例,您没有明确需要对程序计数器执行任何操作,CPU会在执行每条指令时递增程序计数器。