本文已收录到:MIPS架构CPU设计 专题
第一张图是有关逻辑、移位和空操作指令的汇编代码,图二:我们通过编译链工具将其转换为标准mips格式机器码:
写完之后做测试发现一个问题,就是有的指令无法从端口1中正确获取数据:
从怀疑译码阶段的代码有问题一直到怀疑数据冲突代码有问题,又怀疑到寄存器代码有问题。通过meld代码比对,模块测试。始终未发现问题在哪里。。。
经过一天的排错,最后发现是线连错了。。。。。我是死活也没想到线会连错。为什么不怀疑是线的问题呢?因为之前也用的从寄存器中取数据这种情形,但都出来正确结果了。。真是见鬼。我估计可能之前寄存器里的值本来就是0,取值失败输出的也是0,所以我就误以为取出来的。。
最后啊,因为经常要查指令码,我干脆从网上找了一份mips指令集手册。按手册写,这样标准化,也方便以后配合编译器、操作系统使用。
MIPS汇编手册我找了一份精简版,在这篇文章中:MIPS汇编语言学习笔记03:print HelloWorld
关于更多MIPS汇编语言本身的学习,欢迎阅读我的MIPS汇编学习笔记。