C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了需要用C或C编写MIPS汇编程序,寻找一些设计建议大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
需要用C/C++编写MIPS汇编程序.在我开始编写一些代码之前,我想我应该花点时间先做一些规划.我需要大约15个MIPS指令,包括J,但不包括JR.程序需要接收包含.text,.data和.word部分以及标签文件,然后输出第一行的十进制文件,其中包含指令数和数据字数.其余的是以十六进制编码的机器代码.最后一组行由十六进制值组成,表示数据段中单词的初始值.我知道我需要做2次传递才能首先解析标签和JUMP指令.基本上我只是在寻找有关如何设置数据结构的建议.我应该做一个包含OPCODE,RS,RT,RD等的字符串数组……然后以某种方式将其转换为十六进制?或者有更好的方法从有任何建议/经验的人那里做到这一点?感谢您的帮助/建议!

解决方法

很久以前,我实际上已经做了类似项目的事情了!你必须要做2次通过才对.但是,不要为寄存器使用字符串数组.实际上你根本不需要使用字符串.您可以将OPCODE放在枚举中,将寄存器放在枚举中.对于15条指令,您可以通过手动编码switch-case,if-else语句而不是设计完全通用的解决方案来轻松完成大部分工作.使用正则表达式可能很诱人,但对于你的问题,这是不值得的(尽管如果你有时间,你绝对应该利用任何机会学习正则表达式!).然后使用类似hashmap的结构在寄存器和OPCODE及其HEX值之间进行映射,并使用它们.您可以直接在代码中进行任何地址计算.这只是一个建议,你一定要试验.我的主要观点是,如果你正在读一个字符串,你不应该先将它存储在同一个表单中,然后再处理它并存储一些东西(读取:对象)更有意义.

基本上,您只需要第一次传递标签等.您可以在第二次传递中执行其他所有操作.如果您查看任何操作系统教科书中基本的典型编译器/汇编程序流程图,您可以轻松模拟每个步骤 – 这就是我所做的.

希望这可以帮助!

大佬总结

以上是大佬教程为你收集整理的需要用C或C编写MIPS汇编程序,寻找一些设计建议全部内容,希望文章能够帮你解决需要用C或C编写MIPS汇编程序,寻找一些设计建议所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。