实验2:MIPS指令系统和MIPS体系结构
实验2:MIPS指令系统和MIPS体系结构
一.实验目的
- (1)了解和熟悉指令级模拟器
- (2)熟悉掌握MIPSsim模拟器的操作和使用方法
- (3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解
- (4)熟悉MIPS体系结构
二. 实验内容和步骤
首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统。
(1)、启动MIPSsim。
(2)、选择“配置”->“流水方式”选项,使模拟器工作在非流水方式。
(3)、参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。
(4)、选择“文件”->“载入程序”选项,加载样例程序 alltest.asm,然后查看“代码”窗口,查看程序所在的位置。
(5)、查看“寄存器”窗口PC寄存器的值:[PC]= 0x00000000 。
(6)、执行load和store指令,步骤如下:
1)单步执行一条指令(F7)。
{,立即数用补码形式存放; ADDIU : r 8 , r8, r8,r0,128
ADDIU是GPR和立即数做无符号加法操作,但立即数字段是有符号的,所以需要做符号扩展。r8=r0+124}
2)下一条指令地址为 0x00000004 ,是一条 有 (有,无)符号载入 字节 (字节,半字,字)指令(LB从存储器中读取一个字节的数据到寄存器中,读出的是带符号的数据)
3)单步执行一条指令(F7)。
4)查看R1的值,[R1]= 0xFFFFFFFFFFFFFF80 (十进制为:-128) 。
{一个字节的范围带符号的就是
-128到+127,16进制的80转换成十进制为+128,一个字节的范围为-128~+127;16进制的80转换成二进制为10000000,补码表示法得知
10000000 就是-128的补码咯 }
5)下一条指令地址为 0x00000008 ,是一条 无 (有,无)符号载入 字 (字节,半字,字)指令。{LW:从存储器中读取一个字的数据到寄存器中}
6)单步执行1条指令。
7)查看R1的值,[R1]= 0x0000000000000080 (二进制的值为:128) 。
8)下一条指令地址为 0x0000000C ,是一条 无 (有,无)符号载入 字节 (字节,半字,字)指令。
{LBU功能与LB指令相同,但读出的是不带符号的数据}
9)单步执行1条指令。
10)查看R1的值,[R1]= 128(十进制) /0x0000000000000080 (十六进制) 。
11)单步执行1条指令。
12)下一条指令地址为 0x00000014 ,是一条保存 字 (字节,半字,字)指令。
13)单步执行一条指令。
14)查看内存BUFFER处字的值,值为 0X00000080 。
(7)、执行算术运算类指令。步骤如下:
1)双击“寄存器”窗口中的R1,将其值修改为2。
2)双击“寄存器”窗口中的R2,将其值修改为3。
3)单步执行一条指令。
4)下一条指令地址为 0x00000020 ,是一条加法指令。
5)单步执行一条指令。
6)查看R3的值,[R3]= 5
7)下一条指令地址为 0x00000024 ,是一条乘法指令。
8)单步执行一条指令。
9)查看LO、HI的值,[LO]= 0x0000000000000006 ,[HI]= 0x0000000000000000 。
(8)、执行逻辑运算类指令。步骤如下:
1)双击“寄存器”窗口中的R1,将其值修改为0xFFFF0000。
2)双击“寄存器”窗口中的R2,将其值修改为0xFF00FF00。
3)单步执行一条指令。
4)下一条指令地址为 0x00000030 ,是一条逻辑与运算指令,第二个操作数寻址方式是 寄存器直接寻址 (寄存器直接寻址,立即数寻址)。
5)单步执行一条指令。
6)查看R3的值,[R3]= 0x00000000FF000000 。
7)下一条指令地址为 0x00000034 ,是一条逻辑或指令,第二个操作数寻址方式是 立即数寻址 (寄存器直接寻址,立即数寻址)。
8)单步执行一条指令。
9)查看R3的值,[R3]= 0x0000000000000000 。
(9)、执行控制转移类指令。步骤如下:
1)双击“寄存器”窗口中R1,将其值修改为2。
2)双击“寄存器”窗口中R2,将其值修改为2。
3)单步执行一条指令。
4)下一条指令地址为 0x00000040 ,是一条BEQ指令,其测试条件是 两个操作数相等 。
5) 单步执行1条指令。
6) 查看PC的值,[PC]= 0x0000004C ,表明分支 成功 (成功,失败)。
7) 一条指令是一条BGEZ指令,其测试条件是 大于等于零转移 ,目标地址为 0x00000058 。
8) 单步执行1条指令。
9) 查看PC的值,[PC]= 0x00000058 ,表明分支 成功 (成功,失败)。
10) 下一条指令是一条BGEZAL指令,其测试条件是 大于等于零转移并链接 ,目标地址为 0x00000064 。
11) 单步执行1条指令。
12) 查看PC的值,[PC]= 0x00000068 ,表明分支 成功 (成功,失败);查看R31的值,[R31]= 92 。
13) 单步执行1条指令。
14)查看R1的值,[R1]= 116 。
15)下一条指令地址为 0x00000068 ,是一条JALR指令,保存目标地址的寄存器为R1 ,保存返回地址的目标寄存器为R3。
16)单步执行1条指令。
17)查看PC和R3的值,[PC]= 0x00000074 ,[R3]=108 。
三、实验结果分析
实验结果分析
ADDIU : r 8 , r8, r8,r0,124 ADDIU是GPR和立即数做无符号加法操作,但立即数字段是有符号的,所以需要做符号扩展。r8=r0+124
LB r 1 , 0 ( r1,0( r1,0(r8) 从存储器中r8读取一个字节的数据(带符号)到寄存器中r1
LW r 1 , 0 ( r1,0( r1,0(r8) 从存储器中r8读取一个字的数据(不带符号)到寄存器中r1
LBU r 1 , 0 ( r1,0( r1,0(r8) 从存储器中r8读取一个字节的数据(不带符号)到寄存器中r1
ADDIU : r 8 , r8, r8,r0,128 ADDIU是GPR和立即数做无符号加法操作,但立即数字段是有符号的,所以需要做符号扩展。r8=r0+128
SW r 1 , 0 ( r1,0( r1,0(r8):把一个字的数据从寄存器存储到存储器中
BEQ ,$r0, $r0,PROG2:条件转移指令,当两个寄存器内容相等时转移发生
-》》》跳转到PROG2
DADD $r3 $r1 r 2 把 两 个 定 点 寄 存 器 的 内 容 相 加 , 也 就 是 定 点 加 r2 把两个定点寄存器的内容相加,也就是定点加 r2把两个定点寄存器的内容相加,也就是定点加r3 =$r1+ $r2 =128
DMULT $r1 r 2 两 个 定 点 寄 存 器 的 内 容 相 乘 , 也 就 是 定 点 乘 r 1 = 128 r 2 = 0 B E Q , r2 两个定点寄存器的内容相乘,也就是定点乘r1=128 r2 =0 BEQ , r2两个定点寄存器的内容相乘,也就是定点乘r1=128r2=0BEQ,r0, $r0,PROG3:条件转移指令,当两个寄存器内容相等时转移发生
-》》》跳转到PROG3
AND $r3 $r1 r 2 与 运 算 , 两 个 寄 存 器 中 的 内 容 相 与 ( r2 与运算,两个寄存器中的内容相与( r2与运算,两个寄存器中的内容相与(r3=$r1 & $r2) r1=128 r2=0 r3=0 两位同时为“1”,结果才为“1”,否则为0
ANDI $r3 r 10 一 个 寄 存 器 中 的 内 容 与 一 个 立 即 数 相 与 B E Q , r1 0 一个寄存器中的内容与一个立即数相与 BEQ , r10一个寄存器中的内容与一个立即数相与BEQ,r0, $r0,PROG4:条件转移指令,当两个寄存器内容相等时转移发生
-》》》跳转到PROG4
BEQ $r1 r 22 条 件 转 移 指 令 , 当 两 个 寄 存 器 内 容 相 等 时 转 移 发 生 , r2 2 条件转移指令,当两个寄存器内容相等时转移发生, r22条件转移指令,当两个寄存器内容相等时转移发生,r1不等于$r2不发生
SLL $r0 $r0 0 逻辑左移
SLL $r0 $r0 0 逻辑左移
BGEZ $r1 2 跳转指令
-》》》跳转到label2
BGEZAL $r1 2 条件转移指令
-》》》跳转到label3
ADDIU $r1 $r0 116 r1=r0+116=116
JALR $r3 $r1 使用寄存器的跳转指令,并且带有链接功能,指令的跳转地址在寄存器中,跳转发生时指令的放回地址放在R31这个寄存器中
Teq :异常相关指令
四.实验心得
MIPSsim模拟器的基础操作以及使用方法;单步执行,程序的载入,以及配置方式中的流水;熟悉MIPS指令系统;加深对MIPS指令操作语义的理解;并对代码区,寄存器进行了剖析,但是对时钟周期内存这部分理解的还不是很清晰;在以后的实验中解决;思考了LB,字节,字,双字,以及无符号如何查看,以及buffer如何查看内容;然后通过对对代码区中的符号指令进行了自我学习;以及对ARM进行了很好的温习;认识LW,LB,LU,ADDU,ADDIU,SLL,MUL,BEQ,等简单的指令的含义进行了分析;但是仍然存在部分的寄存器值的变化未清楚其详细步骤;在接下来的继续环节中需要弄懂;
实验2:MIPS指令系统和MIPS体系结构相关推荐
- 【实验报告】实验一 MIPS指令系统和MIPS体系结构
文章目录 实验一 MIPS指令系统和MIPS体系结构 实验目的 实验要求 实验内容 实验平台 实验步骤 拓展内容(选做) 实验结果 心得体会 参考资料 实验一 MIPS指令系统和MIPS体系结构 实验 ...
- 计算机组成原理mips与arm,计算机组成原理之MIPS指令系统和MIPS体系结构
一.实验目的 (1)了解和熟悉指令级模拟器 (2)熟悉掌握MIPSsim模拟器的操作和使用方法 (3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解 (4)熟悉MIPS体系结构 模拟器 ...
- 计算机组成原理 mips指令,计算机组成原理--MIPS指令的表示
计算机组成原理--10.5 1.计算机中指令的表示 前言: 指令在计算机内部是用高低电平表示的,并且看上去和数的表示是一样的.实际上,指令的各个部分都可以看成数,将这些数拼在一起就构成了指令.(实际上 ...
- MIPS指令以及数据通路
MIPS指令以及数据通路 MIPS 1字=4字节 1字节=8位 即:1字=32位 每一个时钟周期:IM取指令->译码->ALU执行->DM访存->回写Reg ADDI addi ...
- 计算机组成原理学习笔记第5章指令系统 5.5——MIPS指令概述
有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 0.思维导图 1.MIPS ...
- 【Computer Organization笔记10】单周期CPU设计:基于7条MIPS指令的数据通路
本次笔记内容: P19 计算机组成原理(19) P20 计算机组成原理(20) 本节课对应幻灯片: 组成原理24 singlecycle.pptx 基于上节课的7条MIPS指令的数据通路,分别针对7条 ...
- 3.6 MIPS指令简介
计算机组成 3 指令系统体系结构 3.6 MIPS指令简介 MIPS秉承着指令数量少,指令功能简单的设计理念.那这样的设计理念是如何实现的呢?在这一节,我们就将来分析MIPS指令的特点. 相比于X86 ...
- mips的旁路_64位MIPS指令处理器的流水线设计
1 引言 随着集成电路设计和工艺技术的发展,嵌入式系统(SOC)已经在PDA.机顶盒.手机等信息终端中被广泛应用.他不仅减小了电路尺寸,而且具有成本低廉,可靠性高,功耗低等优点.可以说嵌入式系统是未来 ...
- mips j指令_MIPS处理器 MIPS指令集(上)
目录 引言 MIPS指令集有固定的MIPS指令格式和MIPS指令类型,还有固定的MIPS寄存器,它们是了解MIPS指令必不可少的前提. 其中,寄存器是MIPS处理器高效的临时存储工具,其存取速度极快, ...
最新文章
- BZOJ3529: [Sdoi2014]数表(莫比乌斯反演 树状数组)
- InfluxDB基本使用说明
- 要是不会用数据,算什么IT产品经理?
- web.xml详细配置
- php7 错误处理,PHP7升级-异常错误处理
- php有哪些debug方式,Console有哪些Debug方法
- delphi 多个checkbox只能勾选一个_CAD加选无效?不可连续选择多个对象?按下这个键就正常了...
- lightning接口_苹果、安卓充电接口有望统一,欧盟重压下,苹果将不得不妥协
- 拒绝LOW ---青鸟影院购票系统
- 支付宝小程序框架分析
- ArcGIS_重分类
- C# WinForm中NotifyICon控件的用法
- 各国家分析之加拿大安道尔
- amd apu战略_添加内存如何显着提高AMD APU的游戏性能?
- Codeforces Round #741 (Div. 2) A. The Miracle and the Sleeper
- R语言函数-tolower
- python中nums[:]和nums
- 数据结构之三元组的实现
- PHP脚本中的两种换行符的区别
- 【CSDN软件工程师能力认证学习精选】Python可视化库
热门文章
- 【C语言学习笔记】26. 指针(3)指向指针的指针、传递指针给函数
- 指向结构体的指针和指向结构体指针的指针
- 今日头条用户文章标题及详情页爬取
- RTL8370N 8口千兆交换机 PCB图纸方案资料 和芯片的datasheet
- 【区块链 | Solidity】Solidity开发教程:用Web3.js构建第一个Dapp
- 微信小程序---验证码倒计时
- Docker容器——重命名镜像的TAG
- linux系统vi替换命令,linux:vi 替换命令
- 分享几张大佬程序员常用壁纸,你值得拥有!
- Arcgis desktop 10及Arcgis Engine 10破解