微机原理实验报告

  • 格式:docx
  • 大小:398.42 KB
  • 文档页数:3

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理实验报告

实验名称: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软件的应用和程序的调试工作,理解了汇编语言中机器指令的执行方法,还基本掌握了内存的分配区间。