菜单

在编写基于MIPS的类C语言编译器程序的过程中遇到的一些问题

2019年8月10日 - 4166am金沙下载

在编写基于MIPS的类C语言编写翻译器程序的进度中蒙受的有的标题,mips编写翻译器

在前阵子用Java写C–(简化的C语言)编写翻译器的时候,境遇了贰个烦劳本人非常久的主题素材:在将测量检验C—代码输入并进行完parser和typechecking之后,成功编译生成了一段完整的MIPS代码。然则将MIPS代码复制进模拟器QtSpim施行时,模拟器却报错了。

      

难题剖析:一齐来不可能直接定位现身问题的职分,只好由QtSpim提供的错误消息里找到出错的代码地方,开掘难点出在了在函数之间传递参数的代码上。

图片 1

Error message:Instruction references undefined symbol at 0x00400014

为了定位难题的有血有肉品种,将输入的C–代码功效简化到三个独立的main函数,然后逐步增加全局变量、增多一些变量证明、流程序调节制语句和函数申明及调用,最终开采标题出在了函数的参数字传送递上。

找到出错误的代码后,开掘标题在于调用函数时会对参数的偏移量进行对齐,而进行对齐的代码出了一点不当。将错误校订后,难题能够缓慢解决。

图片 2

在前阵子用Java写C–(简化的C语言)编写翻译器的时候,境遇了多少个困…

在前阵子用Java写C–(简化的C语言)编写翻译器的时候,蒙受了二个麻烦自身非常久的标题:在将测量试验C—代码输入并实施完parser和typechecking之后,成功编写翻译生成了一段完整的MIPS代码。然则将MIPS代码复制进模拟器QtSpim实行时,模拟器却报错了。

在前阵子用Java写C–(简化的C语言)编写翻译器的时候,遭逢了贰个劳神自个儿非常久的难题:在将测量检验C—代码输入并进行完parser和typechecking之后,成功编写翻译生成了一段完整的MIPS代码。但是将MIPS代码复制进模拟器QtSpim施行时,模拟器却报错了。

      

      

主题材料解析:一发端无法直接定位出现难题的职位,只可以由QtSpim提供的错误音信里找到出错的代码地方,开采难题出在了在函数之间传递参数的代码上。

难点分析:一早先不可能直接定位出现难点的职务,只好由QtSpim提供的错误音讯里找到出错的代码地点,发掘难题出在了在函数之间传递参数的代码上。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图