微机原理实验报告
- 格式:docx
- 大小:398.42 KB
- 文档页数:3
微机原理实验报告
实验名称:MIPS汇编程序设计
一.实验目的
掌握MIPS汇编程序设计
掌握QTSPIM的调试技术
了解MIPS汇编语言与机器语言之间的对应关系
熟悉常见的MIPS汇编指令
掌握程序的内存映像
二.实验任务
用汇编程序实现以下伪代码:要求采用移位指令实现乘除法运算
Int main()
{int K,Y;
Int Z[50];
Y=56;
K=20;
Z[K]=Y-16*(K/4+210);
}
三.程序设计及分析
首先需要定义用户数据段,获得一个内存空间作为数组空间。再选定几个寄存器作为K,Y 以及输出。分配完地址后,最重要的是完成循环控制。
四.程序实现及调试分析
1.代码及注释如下
.data #定义用户数据段
z:.space 200
zhj:.asciiz"\n"#换行输出
.text
main:
la $s0,z #$s0=addrz
li $t0,0 #$s1=k=0
li $t1,56 #$s2=y=56
loop:
slti $t2,$t0,50 #判断k是否小于50
beq $t2,$0,done #当k大于等于50时跳转
srl $t3,$t0,2 #k/4
addi $t3,$t3,210 #k/4+210
sll $t3,$t3,4 #16*(k/4+210)
sub $t3,$t1,$t3 #y-16*(k/4+210)
sw $t3,0($s0) #写进z[k]
addi $s0,$s0,4 #地址移一位
addi $t0,$t0,1 #k加1
add $a0,$t3,0
li $v0,1
syscall
li $v0,4
la $a0,zhj
syscall
j loop #循环
done:
li $v0 10
syscall
2.内存映像
2.1代码段地址机器码指令
仿真器在真正的用户代码段内增加了部分代码以实现程序运行控制,用户代码段将每一行代码的地址及其对应的机器码都显示给用户。通过地址部分信息,可看出每一行代码的地址都是前一行代码地址+4,即PC+4.
2.2数据段
由图可知数组地址每行有4个是一样的,总共50个地址。这是因为数组含有50个元素,而int型数据占4个字节空间,字对齐方式,所以连续4个地址是相同的。
2.3输出结果
五.实验总结
通过本次试验,我基本掌握了Qtspim软件的应用和程序的调试工作,理解了汇编语言中机器指令的执行方法,还基本掌握了内存的分配区间。