我有一个关于MIPS中的注释通常如何存储的幕后问题。主要是:它们为什么不影响依赖于位置的指令?这与它们的存储方式有关吗?
例如,假设我有一个跳转语句,如
j Label
# I'm a comment. I don't do anything!
Label:
该跳转指令可能是十六进制的0x08100007
。如果有该评论,说明将是相同的。至少,根据MARS 4.5,我的MIPS模拟器。
但是,如果我要在标签和跳转语句之间放置一条有意义的指令,则十六进制代码将递增。
j Label
addi $t0, $t0, 10
Label:
根据MARS,跳转指令实际上以十六进制递增为0x08100008
。
所以,注释为什么不将地址转移到跳转指令需要去的地方?
处理器不知道或看不到:
它只看到机器代码指令 -并且这些告诉它它需要知道的一切]
由于注释没有用机器代码表示,因此它们将由编译器或汇编器删除。