RISC

您所在的位置:网站首页 fp指令是什么意思 RISC

RISC

#RISC| 来源: 网络整理| 查看: 265

算术运算

add rd, rs1, rs2

x[rd] = x[rs1] + x[rs2]

把寄存器 x[rs2]加到寄存器 x[rs1]上,结果写入 x[rd]。忽略算术溢出。

 

addi rd, rs1, immediate

x[rd] = x[rs1] + sext(immediate)

把符号位扩展的立即数加到寄存器 x[rs1]上,结果写入 x[rd]。忽略算术溢出。

 

sub rd, rs1, rs2

x[rd] = x[rs1] − x[rs2]

x[rs1]减去 x[rs2],结果写入 x[rd]。忽略算术溢出。

 

div rd, rs1, rs2

x[rd] = x[rs1] ÷s x[rs2]

用寄存器 x[rs1]的值除以寄存器 x[rs2]的值,向零舍入,将这些数视为二进制补码,把商写 入 x[rd]。

 

mul rd, rs1, rs2

x[rd] = x[rs1] × x[rs2]

把寄存器 x[rs2]乘到寄存器 x[rs1]上,乘积写入 x[rd]。忽略算术溢出。

 

rem rd, rs1, rs2

x[rd] = x[rs1] %𝑠 x[rs2]

求余数。x[rs1]除以 x[rs2],向 0 舍入,都视为 2 的补码,余数写入 x[rd]。

 

neg rd, rs2

x[rd] = −x[rs2]

把寄存器 x[rs2]的二进制补码写入 x[rd]。

 

逻辑运算

and rd, rs1, rs2

x[rd] = x[rs1] & x[rs2]

将寄存器 x[rs1]和寄存器 x[rs2]位与的结果写入 x[rd]。

 

andi  rd, rs1, immediate

x[rd] = x[rs1] & sext(immediate)

把符号位扩展的立即数和寄存器 x[rs1]上的值进行位与,结果写入 x[rd]。

 

or rd, rs1, rs2

x[rd] = ~x[rs1]

把寄存器 x[rs1]和寄存器 x[rs2]按位取或,结果写入 x[rd]。

 

xor rd, rs1, immediate

x[rd] = x[rs1] ^ sext(immediate)

x[rs1]和有符号扩展的 immediate 按位异或,结果写入 x[rd]。

 

位运算

sll rd, rs1, rs2

x[rd] = x[rs1] ≪ x[rs2]

逻辑左移(空位补0)

 

slli rd, rs1, shamt

立即数逻辑左移

 

srl rd, rs1, rs2

x[rd] = (x[rs1] ≫𝑢 x[rs2])

逻辑右移(空位补0)

 

srli rd, rs1, shamt

立即数逻辑右移

 

sra rd, rs1, rs2

x[rd] = (x[rs1] ≫𝑠 x[rs2])

算术右移(空位用最高位填充)

 

srai rd, rs1, shamt

立即数逻辑右移

 

not td, rs1

x[rd] = ~x[rs1]

把寄存器 x[rs1]对于 1 的补码(即按位取反的值)写入 x[rd]。实际被扩展为 xori rd, rs1, -1。

 

条件控制指令

beq rs1, rs2, offset

if (rs1 == rs2) pc += sext(offset)

若寄存器 x[rs1]和寄存器 x[rs2]的值相等,把 pc 的值设为当前值加上符号位扩展的偏移 offset。

 

bge rs1, rs2, offset

if (rs1 ≥s rs2) pc += sext(offset)

若寄存器 x[rs1]的值大于等于寄存器 x[rs2]的值(均视为二进制补码),把 pc 的值设为当前 值加上符号位扩展的偏移 offset。

 

blt rs1, rs2, offset

if (rs1



【本文地址】


今日新闻


推荐新闻


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