A.1 实验一 MIPS指令系统和MIPS体系结构
A.1.1 实验目的
1. 了解和熟悉指令级模拟器。
2. 熟练掌握MIPSsim模拟器的操作和使用方法。
3. 熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解。
4. 熟悉MIPS体系结构。
A.1.2实验平台
实验平台采用指令级和流水线操作级模拟器MIPSsim。
环境的建立:见A.0。
A.1.3 实验内容和步骤
首先要阅读MIPSsim模拟器的使用方法(见附录B),然后了解MIPSsim的指令系统(见附录C)。
1. 启动MIPSsim(用鼠标双击MIPSsim.exe)。
2. 点击“配置”→“流水方式”,使模拟器工作在非流水方式下。
3. 阅读附录,熟悉MIPSsim模拟器的操作和使用方法。
可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中),然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化。
4. 选择“文件”→“载入程序”选项,加载样例程序alltest.asm,然后查看“代码”窗口,查看程序所在的位置(起始地址为0x00000100)。
5. 查看“寄存器”窗口PC寄存器的值:[PC]= 0x 。
6. 执行load和store指令。步骤如下:
(1)单步执行一条指令(F7)。
(2)下一条指令地址为0x ,是一条 (有,无)符号载入 (字节,半字,字)指令。
(3)单步执行1条指令(F7)。
(4)查看R1的值,[R1]= 0x 。
(5)下一条指令地址为0x ,是一条 (有,无)符号载入 (字,半字,字)指令。
(6)单步执行1条指令。
(7)查看R1的值,[R1]=0x 。
(8)下一条指令地址为0x ,是一条 (有,无)符号载入 (字,半字,字)指令。
(9)单步执行1条指令。
(10) 查看R1的值,[R1]= 0x 。
(11) 单步执行1条指令。
(12) 下一条指令地址为0x ,是一条保存 (字,半字,字)指令。
(13) 单步执行1条指令。
(14) 查看内存BUFFER处字的值,值为0x 。
7. 执行算术运算类指令。步骤如下:
(1) 双击“寄存器”窗口里的R1,将其值修改为2。
(2) 双击“寄存器”窗口里的R2,将其值修改为3。
(3) 单步执行1条指令。
(4) 下一条指令地址为0x ,是一条加法指令。
(5) 单步执行1条指令。
(6) 查看R3的值,[R3]= 0x 。
(7) 下一条指令地址为0x ,是一条乘法指令。
(8) 单步执行1条指令。
(9) 查看LO、HI的值,[LO]= 0x ,[HI]=0x 。
8. 执行逻辑运算类指令。步骤如下:
(1) 双击“寄存器”窗口里的R1,将其值修改为0xFFFF0000。
(2) 双击“寄存器”窗口里的R2,将其值修改为0xFF00FF00。
(3) 单步执行1条指令。
(4) 下一条指令地址为0x ,是一条逻辑与运算指令,第二个操作数寻址方式是 (寄存器直接寻址,立即数寻址)。
(5) 单步执行1条指令。
(6) 查看R3的值,[R3]= 0x 。
(7) 下一条指令地址为:0x ,是一条逻辑或指令,第二个操作数寻址方式是 (寄存器直接寻址,立即数寻址)。
(8) 单步执行1条指令。
(9) 查看R3的值,[R3]= 0x 。
9. 执行控制转移类指令。步骤如下:
(1) 双击“寄存器”窗口里的R1,将其值修改为2。
(2) 双击“寄存器”窗口里的R2,将其值修改为2。
(3) 单步执行1条指令。
(4) 下一条指令地址为0x ,是一条BEQ指令,其测试条件是: ,目标地址为0x 。
(5) 单步执行1条指令。
(6) 查看PC的值,[PC]=0x ,表明分支 (成功,失败)。
(7) 下一条指令地址是一条BGEZ指令,其测试条件是 ,目标地址为0x 。
(8) 单步执行1条指令。
(9) 查看PC的值,[PC]=0x ,表明分支 (成功,失败)。
(10)下一条指令地址是一条BGEZAL指令,其测试条件是 ,目标地址为0x 。
(11)单步执行1条指令。
(12)查看PC的值,[PC]=0x ,表明分支 (成功,失败);查看R31的值,[R31]= 0x 。
(13)单步执行1条指令。
(14)查看R1的值,[R1]=0x 。
(15)下一条指令地址为0x ,是一条JALR指令,保存目标地址的寄存器为R ,保存返回地址的目标寄存器为R 。
(16)单步执行1条指令。
(17)查看PC和R3的值,[PC]=0x ,
[R3]= 0x 。

