指令详解

您所在的位置:网站首页 汇编$用法 指令详解

指令详解

#指令详解| 来源: 网络整理| 查看: 265

指令详解

本实验一共要实现 31 条与 MIPS 兼容的指令,其中R型17条,I型12条,J型两条。下面对每条指令的格式、功能等给出详细解释,其中用到一些符号约定如下,另外,赋值算式右边的 PC 中存放的是当前指令 的地址。

rs, rt, rd:表示 32 位通用寄存器号(rs 是源操作数,rt 为源/目的操作数,rd 为目的操作数) shamt: 表示 5 位移位位数 immediate: 表示 16 位立即数 offset: 表示 16 位偏移量 address: 表示 26 位地址 R-型指令 1 add

指令名:加法指令 汇编格式:add rd, rs, rt 汇编举例:add $4, $2, $3 功能描述:rd ← rs + rt; PC ← NPC (PC + 4)。 32 位整数加法,源操作数分别在 rs, rt 两个通用寄存器中,结果放在 rd 寄存器。由 于本设计无溢出检测,因此该指令功能同 ADDU。

2 addu

指令名: 无符号数加法指令 汇编格式:addu rd, rs, rt 汇编举例:addu $4, $2, $3 功能描述:rd ← rs + rt; PC ← NPC (PC + 4)。 32 位无符号整数加法,源操作数分别在 rs, rt 两个通用寄存器中,结果放在 rd 寄存器。

3 sub

指令名:减法指令 汇编格式:sub rd, rs, rt 汇编举例:sub $4, $2, $3 功能描述:rd ← rs - rt; PC ← NPC (PC + 4)。 32 位整数减法,源操作数分别在 rs, rt 两个通用寄存器中,结果放在 rd 寄存器。

4 subu

指令名:无符号减法指令 汇编格式:subu rd, rs, rt 汇编举例:subu $4, $2, $3 功能描述:rd ← rs - rt; PC ← NPC (PC + 4)。 32 位无符号整数减法,源操作数分别在 rs, rt 两个通用寄存器中,结果放在 rd 寄存器。

5 and

指令名: 逻辑与 汇编格式:and rd, rs, rt 汇编举例:and $4, $2, $3 功能描述:rd ← rs and rt; PC ← NPC (PC + 4)。 32 位数按位逻辑与,源操作数分别在 rs, rt 中,结果放在 rd 寄存器。

6 or

指令名: 逻辑或 汇编格式:or rd, rs, rt 汇编举例:or $4, $2, $3 功能描述:rd ← rs or rt; PC ← NPC (PC + 4)。 32 位数按位逻辑或,源操作数分别在 rs, rt 中,结果放在 rd 寄存器。

7 xor

指令名: 逻辑异或 汇编格式:xor rd, rs, rt 汇编举例:xor $4, $2, $3 功能描述:rd ← rs xor rt; PC ← NPC (PC + 4)。 32 位数按位逻辑异或,源操作数分别在 rs, rt 中,结果放在 rd 寄存器。

8 nor

指令名: 逻辑或非 汇编格式:nor rd, rs, rt 汇编举例:nor $4, $2, $3 功能描述:rd ← rs nor rt; PC ← NPC (PC + 4)。 32 位数按位逻辑或非,源操作数分别在 rs, rt 中,结果放在 rd 寄存器。

9 slt

指令名: 小于则设置指令 汇编格式:slt rd, rs, rt 汇编举例:slt $4, $2, $3 功能描述: if ((rs)shamt; PC ← NPC (PC + 4)。算术右移,将 rt 寄存器中的 32 位数算术右移后赋给 rd,移位的位数是 shamt。算术右移时, 符号位不仅要参与移位,还要保留,如 80000000H 算术右移 1 位的结果是 0C0000000H。

14 sllv

指令名: 按寄存器值逻辑左移指令 汇编格式:sllv rd, rt, rs 汇编举例:sllv $4, $2, $3 功能描述: (rd)←(rt)(rs); PC ← NPC (PC + 4)。按寄存器值逻辑右移指令,将 rt 寄存器中的 32 位数逻辑右移后赋给 rd,移位的位数在 rs 寄存器中。

16 srav

指令名: 按寄存器值算术右移指令 汇编格式:srav rd, rt, rs 汇编举例:srav $4, $2, $3 功能描述: (rd)←(rt)>>(rs); PC ← NPC (PC + 4)。按寄存器值算术右移指令,将 rt 寄存器中的 32 位数算术右移后赋给 rd,移位的位数在 rs 寄存器中。算术右移 时,符号位不仅要参与移位,还要保留。

17 jr

指令名: 按寄存器内容转移指令 汇编格式:JR rs 汇编举例:JR $31 功能描述:(PC)←(rs); PC ← NPC (PC + 4)。将 rs 寄存器的内容当地址,赋给 PC,从而完成转移,通常可做过程返回语句。实际系统中只用了低 16 位地址线。

I-型指令 18 addi

指令名:有符号立即数加法指令 汇编格式:ADDI rt, rs, immediate 汇编举例:ADDI $4, $2, -100 功能描述:(rt)←(rs) + (Sign-Extend)immediate; PC ← NPC (PC + 4)。首先将 16 位有符号立即数扩展到 32 位,然后加上 rs 中的数,结果给 rt 寄存器。 如果结果溢出会产生内部异常中断,本设计不支持异常处理。

19 addiu

指令名:无符号立即数加法指令 汇编格式:ADDIU rt, rs, immediate 汇编举例:ADDIU $4, $2, -100 功能描述:(rt)←(rs) + (Sign-Extend)immediate; PC ← NPC (PC + 4)。首先将 16 位有符号立即数扩展到 32 位,然后加上 rs 中的数,结果给 rt 寄存器。 与 ADDI 的不同是不会因溢出而产生内部异常中断,本设计未实现内部异常处理,因此次指令与 ADDI 相同。

20 andi

指令名:立即数逻辑与指令 汇编格式:ANDI rt, rs, immediate 汇编举例:ADDI $4, $2, 1 功能描述:(rt)←(rs) AND (Zero-Extend)immediate; PC ← NPC (PC + 4)。首先将 16 位立即数零扩展到 32 位,然后同 rs 中的数按位逻辑与,结果给 rt 寄存 器。

21 ori

指令名:立即数逻辑或指令 汇编格式:ORI rt, rs, immediate 汇编举例:ORI $4, $2, 5 功能描述:(rt)←(rs) ORI (Zero-Extend)immediate; PC ← NPC (PC + 4)。首先将 16 位立即数零扩展到 32 位,然后同 rs 中的数按位逻辑或,结果给 rt 寄存 器。

22 xori

指令名:立即数逻辑异或指令 汇编格式:XORI rt, rs, immediate 汇编举例:XORI $4, $2, 5 功能描述:(rt)←(rs) XORI (Zero-Extend)immediate; PC ← NPC (PC + 4)。首先将 16 位立即数零扩展到 32 位,然后同 rs 中的数按位逻辑异或,结果给 rt 寄 存器。

23 sltiu

指令名:小于无符号立即数则设置指令 汇编格式:SLTIU rt, rs, immediate 汇编举例:SLTIU $3, $2, 10 功能描述:if ((rs)



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3