【问题标题】:MIPS actual encoding scheme [closed]MIPS实际编码方案[关闭]
【发布时间】:2013-12-05 08:35:36
【问题描述】:

MIPS 如何根据指令实际存储操作码?是线性搜索还是使用hashtable?

我想知道它在数字逻辑或编程方面的表现如何。

我的意思是“添加”如何变成 0x10。是对“add”的ascii码进行操作还是已经保存了,如果保存了怎么办?

如果不是 MIPS,那么任何其他架构都可以工作。

到目前为止,我发现它为这些操作码形成了一个符号表。这方面的任何链接都会有所帮助

提前致谢。

【问题讨论】:

  • 处理器不执行汇编代码;它执行机器代码,因此永远不会看到文本助记符(addlwor 等)。转换由汇编器完成。
  • 很抱歉造成混乱,但这就是我想问的,汇编程序是如何处理的?它是否已经存储,它是否保存了整个绿表或使 ascii 以成为操作码的方式散列?这就是我要问的。
  • 这可能主要取决于谁编写了汇编程序。毕竟,这只是一个程序。

标签: search mips hashtable opcode


【解决方案1】:

正如@Michael 在他的评论中指出的那样,处理器永远不会看到您的助记符(例如addlw)。事实上,一些最常见的命令助记符(如bge,大于等于分支)实际上是伪指令,编译器将其转换为多条本机指令。

如果您在 Google 上搜索“MIPS 绿表”,您会发现典型的计算机体系结构教科书中包含的参考卡,其中解释了每条指令行(助记符加参数)如何转换为 32 位字。

如果您花一些时间将 MIPS 指令插入 MIPS Instruction Converter,您会看到类似 add $t0, $t1, $t2 的内容如何变成 1 和 0 的 32 位序列(以十六进制表示为 0x012A4020),仅此而已CPU 曾经真正看到过。

【讨论】:

    猜你喜欢
    • 2016-06-02
    • 2015-08-05
    • 2014-12-18
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多