我有一个关于MIPS中注释的一般存储方式的幕后问题。主要是:为什么它们不影响依赖于位置的指令 比方说,我有一个类似的跳转语句 跳转的指令可能是十六进制的 但是,如果我在标签和跳转语句之间放入一条有意义的指令,那么十六进制代码就会递增。 根据MARS,跳转指令实际上以十六进制递增到 那么,注释为什么不将地址转移到跳转指令需要去的地方呢?j Label
# I'm a comment. I don't do anything!
Label:
0x08100007
。如果该评论存在或不存在,说明将是相同的。至少,根据MARS 4.5,我的MIPS模拟器。j Label
addi $t0, $t0, 10
Label:
0x08100008
。
处理器不知道或看不到:
- 评论
- 数据声明
- 标签
它只看到机器代码指令——这些指令告诉它关于需要知道的一切
- 下一步执行什么指令
- 如何解释数据(变量/存储位置(
- 如何处理一些数据
由于注释在机器代码中没有表示形式,编译器或汇编程序会删除它们。
标签将被删除,除非它们是全局的——用于多文件编译(有时如果启用了调试(。
数据声明转换为将存储在程序中的数据;数据将被加载到内存中以便运行,但处理器只能在程序的机器代码指令中将数据作为操作数引用时才能看到数据。