没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
附录 B MIPSsim 的指令系统
(MIPS64 指令集的一个子集)
MIPSsim 是一个指令级和流水线级的 MIPS 模拟器。它能够执行用 MIPS 汇编语言(子
集)编写的程序。下面详细描述它所能够执行的指令。
符号说明:
(1) 在指令助记符中,“.W”表示 32 位整数,“.L”表示 64 位整数,“.S”表示单精度浮点数,“.D”
表示双精度浮点数。“.fmt”表示多种格式的数据,fmt∈(S, D, W, L)。
(2) 助记符的最后一个字母为 U 表示无符号操作,I 表示与立即值操作,IU 表示无符号立即值
操作。助记符的第一个字母为 D 表示是双字(64 位)操作。
(3) 为简洁起见,直接用 rs 来表示 rs 寄存器中的内容,其他的如 rt,rd,fs,ft,fd 等都是如
此。
(4) fs, ft, fd 表示浮点寄存器。一般来说,fs 和 ft 表示源操作数(寄存器),fd 表示结果寄存
器。
(5) rs, rt, rd 表示整数寄存器,也称为通用寄存器。一般来说, rs 和 rt 表示源操作数(寄存
器),rd 表示目的寄存器。
(6) 以下是两个特殊寄存器:
LO——特殊寄存器,常用来存放乘积的低 32 位(或 64 位)以及除法的商;
HI——特殊寄存器,常用来存放乘积的高 32 位(或 64 位)以及除法的余数。
1. ABS.fmt
名称:求绝对值
指令格式:
符号指令:
ABS.S fd, fs
ABS.D fd, fs
指令助记符中的fmt指出按什么数据格式进行运算。S表示是单精度,D表示是双精度。下
同。
功能说明:
fd←abs(fs)
对浮点寄存器fs中的数据求绝对值,结果放入fd。
2. ADD
名称:整数加
指令格式:
符号指令:
ADD rd, rs, rt
功能说明:
rd←rs + rt
对通用寄存器rs和rt中的32位整数进行加法运算,结果按符号位扩展后放入通用寄存器
rd。按有符号数操作。
3. ADD.fmt
名称:浮点加
指令格式:
符号指令:
ADD.S fd, fs, ft
ADD.D fd, fs, ft
功能说明:
fd←fs +ft
对浮点寄存器fs和ft中的浮点数进行加法运算,结果放入浮点寄存器fd。
4. ADDI
名称:立即值加
指令格式:
符号指令:
ADDI rt, rs, immediate
功能说明:
rtrs + immediate
把带符号的16位立即值immediate与rs中的32位整数相加,结果进行符号位扩展后放入rt。
按有符号数操作。
5. ADDIU
名称:无符号立即值加
指令格式:
符号指令:
ADDIU rt, rs, immediate
功能说明:
rtrs + immediate
把带符号的16位立即值immediate与rs中的32位整数相加,结果进行符号位扩展后放入rt。
按无符号数操作。
(同上一条指令的区别?)
ADDU
名称:无符号加
指令格式:
符号指令:
ADDU rd, rs, rt
功能说明:
rdrs + rt
把rt和rs中的32位整数按无符号数进行相加,结果进行符号位扩展后放入rd。
6. AND
名称:与
指令格式:
符号指令:
AND rd, rs, rt
功能说明:
rdrs AND rt
把rt和rs中的数据按位进行逻辑“与”操作,结果放入rd。
7. ANDI
名称:立即值与
指令格式:
符号指令:
ANDI rt, rs, immediate
功能说明:
rtrs AND immediate
把16位立即值immediate进行0扩展后,和rs中的数据按位进行逻辑“与”操作,结果放入rt。
8. B
名称:无条件转移
指令格式:
符号指令:
B offset
功能说明:
用指令实现:BEQ r0, r0, offset
9. BC1F
名称:浮点条件码为假则转移
指令格式:
符号指令:
BC1F offset (隐含cc = 0)
BC1F cc, offset
功能说明:
if FPConditionCode(cc) = 0 then 转移
转移地址:将16位的oset左移2位并进行符号位扩展后,与PC(其当前值是指向
本转移指令的下一条指令。下同)相加。
10. BC1T
名称:浮点条件码为真则转移
指令格式:
符号指令:
BC1T offset (cc = 0 implied)
BC1T cc, offset
功能说明:
if FPConditionCode(cc) = 1 then 转移
转移地址:将16位的oset左移2位并进行符号位扩展后,与PC相加。
11. BEQ
名称:相等转移
指令格式:
符号指令:
BEQ rs, rt, offset
功能说明:
if ( rs=rt) then 转移
转移地址:将16位的oset左移2位并进行符号位扩展后,与PC相加。
12. BGEZ
名称:大于等于0转移
指令格式:
符号指令:
BGEZ rs, offset
功能说明:
if( rs>=0) then 转移
转移地址:将16位的oset左移2位并进行符号位扩展后,与PC相加。
13. BGEZAL
名称:大于等于0转移并链接
指令格式:
符号指令:
BGEZAL rs, offset
功能说明:
If (rs>=0) then 转移,并将返回地址(当前的PC值,指向本转移指令后面第二条指令
的地址(PC+8)。下同 )保存到R31。
转移地址:将16位的oset左移2位并进行符号位扩展后,与PC相加。
14. BGTZ
名称:大于0转移
指令格式:
符号指令:
BGTZ rs, offset
功能说明:
if( rs>0) then 转移
转移地址:将16位的oset左移2位并进行符号位扩展后,与PC相加。
15. BLEZ
名称:小于等于0转移
剩余38页未读,继续阅读
资源评论
杰哥
- 粉丝: 2
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功