自己动手写CPU(5)——移动指令说明
移动指令说明
- 移动操作指令
- 特殊寄存器HI、LO
- 移动指令确定过程
移动操作指令
不涉及特殊寄存器LO、HI:
movn:判断地址为rt的通用寄存器的值,如果不为零,将地址为rs的通用寄存器的值赋给地址为rd的通用寄存器;反之,保存rd的值
movz:与movn相反。判断地址为rt的通用寄存器的值,如果为零,将地址为rs的通用寄存器的值赋给地址为rd的通用寄存器;反之,保存rd的值
涉及特殊寄存器LO、HI:
mfhi:将特殊寄存器HI的值赋给地址为rd的通用寄存器
mflo:将特殊寄存器LO的值赋给地址为rd的通用寄存器
mthi:将地址为rs的通用寄存器的值赋给特殊寄存器HI
mtlo:将地址为rs的通用寄存器的值赋给特殊寄存器LO
R型指令
op[31:26] | rs[25:21] | rt[20:16] | rd[15:11] | sa[10:6] | func[5:0] |
---|
名称 | 指令用法 | 指令作用 | 指令码[31:26] | 移位相关[10:6] | 功能码[5:0] |
---|---|---|---|---|---|
MOVN | movn rd, rs, rt | if rt ≠ 0 then rd <- rs | 6’b 00_0000 | 5’b 00000 | 6’b 00_1011 |
MONZ | monz rd, rs, rt | if rt = 0 then rd <- rs | 6’b 00_0000 | 5’b 00000 | 6’b 00_1010 |
MFHI | mfhi rd | rd <- hi | 6’b 00_0000 | 5’b 00000 | 6’b 01_0000 |
MFLO | mflo rd | rd <- lo | 6’b 00_0000 | 5’b 00000 | 6’b 01_0010 |
MTHI | mthi rs | hi <- rs | 6’b 00_0000 | 5’b 00000 | 6’b 01_0001 |
MTLO | mtlo rs | lo <- rs | 6’b 00_0000 | 5’b 00000 | 6’b 01_0011 |
特殊寄存器HI、LO
用于保存乘法、除法结果。
当用于保存乘法结果,HI寄存器保存结果的高32位,LO寄存器保存结果的低32位;
当用于保存除法结果,HI寄存器保存余数,LO寄存器保存商
移动指令确定过程
自己动手写CPU(5)——移动指令说明相关推荐
- 自己动手写CPU(4)移动操作指令的实现
自己动手写CPU(4)移动操作指令的实现 指令说明 MIPS32指令集架构中定义的移动操作指令共有6条: movn.movz.mfhi.mthi.mflo.mtlo,后4条指令涉及对特殊寄存器HI.L ...
- 【自己动手写CPU】除法指令的实现
说明 除法指令有两条:div,divu SPECIAL=000000 31-26 25-21 20-16 15-11 10-6 5-0 useage function SPECIAL rs rt 00 ...
- 自己动手写CPU(8)加载存储指令的实现
自己动手写CPU(8)加载存储指令的实现 好久没更新blog了,暑假提前放了.现在收假也该收收心了,继续捡起之前的CPU,自己开的坑不管咋样把它填完吧. 指令介绍 1.加载指令 2.存储指令 修改系统 ...
- 自己动手写CPU(5)简单算术操作指令实现_1
自己动手写CPU(5)简单算数操作指令实现_1 指令介绍 MIPS32指令集架构定义的所有算术操作指令,共有21条 共有三类,分别是: 简单算术指令 乘累加.乘累减指令 除法指令 算术指令操作介绍 一 ...
- 自己动手写CPU(3)逻辑、移位操作与空指令
自己动手写CPU(3)逻辑.移位操作与空指令 指令说明 MIPS32指令集架构中定义的逻辑操作指令有8条: and.andi.or.ori.xor.xori.nor.lui,其中 ori指令已经实现. ...
- 自己动手写CPU(1)五级流水线及CPU第一条指令ori
自己动手写CPU(1)五级流水线及CPU第一条指令ori 动机 不知为何研一的自由时间突然多起来,可能人一闲下来就容易焦虑吧,hhhhhh.正好之前看到一本<自己动手写CPU>,就按照此书 ...
- 自己动手写CPU之第九阶段(2)——加载存储指令说明2(lwl、lwr)
将陆续上传新书<自己动手写CPU>,今天是第38篇,我尽量每周四篇,但是最近已经很久没有实现这个目标了,一直都有事,不好意思哈. 开展晒书评送书活动,在亚马逊.京东.当当三大图书网站上,发 ...
- 自己动手写CPU之第九阶段(2)——载入存储指令说明2(lwl、lwr)
将陆续上传新书<自己动手写CPU>.今天是第38篇,我尽量每周四篇,可是近期已经非常久没有实现这个目标了.一直都有事,不好意思哈. 开展晒书评送书活动,在亚马逊.京东.当当三大图书站点上, ...
- 【自己动手写CPU】异常相关指令的实现
MIPS架构中定义的异常类型 MIPS32架构中,有些事情打断程序的正常的执行流程,这些事情称为中断.陷阱.系统调用以及其他打断程序执行流程的情况,统称为异常. 此处的OpenMIPS处理器只实现了其 ...
- 自己动手写CPU之第七阶段(10)——除法指令实现过程1
将陆续上传本人写的新书<自己动手写CPU>,今天是第33篇,我尽量每周四篇 亚马逊的销售地址如下,欢迎大家围观呵! http://www.amazon.cn/dp/b00mqkrlg8/r ...
最新文章
- 配置Keil C51配置开发 STC51单片机过程
- 字符串哈希函数(String Hash Functions)
- 关于y7000安装Ubuntu的一些心得体会
- concat函数java_MySql中CONCAT(str1,str2,...)函数
- 笔记-高项案例题-2016年上-整体管理+风险管理
- echarts中如何使用timeline组件
- 产品经理如何量化关键需求指标
- 目标检测的图像特征提取—Haar特征
- 网络数据库的复制和同步(转摘)
- CoreJavaE10V1P3.2 第3章 Java的基本编程结构-3.2 注释
- html中超链接无效怎么办,超链接问题:“引用无效”怎么回事
- 一文了解数据库索引:哈希、B-Tree 与 LSM
- linux局域网聊天软件,自制局域网内聊天与图片传输小软件
- 寄存器的偏移地址是什么意思?还有基地址,偏移地址就是相对于及地址的offset
- python - 正则表达式 与或非
- Developers are hitting a problem due to tools.jar when using Checkstyle
- MySQL优化系列3-Linux查看CPU、内存、磁盘、网络信息
- Opencv Python图像处理进阶教程②
- 基于Springboot+vue实现前后端分离二手图书交易
- 美国要求签证申请人提供社交媒体账号
热门文章
- FFT 快速傅里叶变换 NTT 快速数论变换
- function name should be lowercase
- matlab实现CP分解 代码
- 电脑声音没了怎么恢复
- 2021阿里云ecs云服务器年终钜惠:1核/2G/50G/1Mbps/65元/年,3年180元,续费3.5折
- CPU是计算机的大脑英语,走进PC的大脑:CPU知识全面剖析
- 【Python处理EXCEL】基础操作篇:在Python中导入EXCEL数据
- java函数式编程-科里化
- Win7任务栏右下角图标空白、点击无反应问题的解决
- springboot + 操作日志添加