首页 > 解决方案 > MIPS 中的注释有地址吗?

问题描述

我有一个关于 MIPS 中的评论通常如何存储的幕后问题。主要是:为什么它们不影响依赖于位置的指令?这与它们的存储方式有关吗?


例如,假设我有一个跳转语句,例如

       j Label

       # I'm a comment. I don't do anything!

Label: 

该跳转指令可能是0x08100007十六进制的。如果该评论存在与否,说明将是相同的。至少,根据我的 MIPS 模拟器 MARS 4.5。

但是,如果我在标签和跳转语句之间放置一条有意义的指令,十六进制代码就会递增。

       j Label

       addi $t0, $t0, 10

Label: 

根据 MA​​RS,跳转指令实际上以0x08100008十六进制递增。


那么,为什么注释不将地址转移到跳转指令需要去的地方呢?

标签: assemblymips

解决方案


处理器不知道或看不到:

  • 评论
  • 数据声明
  • 标签

它只看到机器代码指令——这些指令告诉它它需要知道的一切

  • 接下来要执行什么指令
  • 如何解释数据(变量/存储位置)
  • 如何处理一些数据

由于注释在机器代码中没有表示,它们被编译器或汇编器删除。

标签被移除,除非它们是全局的——用于多文件编译(或者有时如果启用了调试)。

数据声明变成将存储在程序中的数据;数据将被加载到内存中运行,但处理器只会看到通过程序的机器代码指令作为操作数引用的数据。


推荐阅读