一.实验目的
(1)了解和熟悉指令级模拟器
(2)熟悉掌握MIPSsim模拟器的操作和使用方法
(3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解
(4)熟悉MIPS体系结构
二. 实验内容和步骤
首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim(MIPS指令系统模拟器)的指令系统。
(1)、启动MIPSsim。
(2)、选择“配置”->“流水方式”选项,使模拟器工作在非流水方式。
(3)、参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。
(4)、选择“文件”->“载入程序”选项,加载样例程序 alltest.asm,然后查看“代码”窗口,查看程序所在的位置。
(5)、查看“寄存器”窗口PC寄存器的值:[PC]= 0x00000000 。
(6)、执行load和store指令,步骤如下:
1)单步执行一条指令(F7)。
2)下一条指令地址为 0x00000004 ,是一条 有 (有,无)符号载入 字节 (字节,半字,字)指令。
3)单步执行一条指令(F7)。
4)查看R1的值,[R1]= -128(十进制)/0xFFFFFFFFFFFFFF80(十六进制)。
5)下一条指令地址为 0x00000008 ,是一条 有 (有,无)符号载入 字 (字节,半字,字)指令。
6)单步执行1条指令。
7)查看R1的值,[R1]= 128(十进制) /0x0000000000000080 (十六进制) 。
8)下一条指令地址为 0x0000000C ,是一条 无 (有,无)符号载入 字节 (字节,半字,字)指令。
9)单步执行1条指令。
10)查看R1的值,[R1]= 128(十进制) /0x0000000000000080 (十六进制) 。
11)单步执行1条指令。
12)下一条指令地址为 0x00000014 ,是一条保存 字 (字节,半字,字)指令。
13)单步执行一条指令。
14)查看内存BUFFER处字的值,值为 0x00000080 。
(7)、执行算术运算类指令。步骤如下:
1)双击“寄存器”窗口中的R1,将其值修改为2。
修改后:
2)双击“寄存器”窗口中的R2,将其值修改为3。
修改后:
3)单步执行一条指令。
4)下一条指令地址为 0x00000024 ,是一条加法指令。
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]= 0(十进制) /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指令,其测试条件是 大于等于零转移并链接 ,目标地址为 。
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。
三、实验结果分析
根据自身的运用与操作,直接可以体现出适应32位操作系统,64位对文件的读取格式报错,提示 “试图加载格式不正确的程序”