微机原理第一次实验

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

.

汇编语言程序设计实验报告班级:通信1306 姓名:张金志学号:U201313788

一.实验目的

1.掌握QTSPIM的调试技术;

2.了解MIPS汇编语言与机器语言之间的对应关系;

3.掌握MIPS汇编程序设计;

4.了解C语言语句与汇编指令之间的关系;

5.熟悉常见的MIPS汇编指令;

6.掌握程序的内存映像;

二.实验内容

用汇编程序实现以下伪代码:要求采用移位指令实现乘除法运算。int main()

{

int K, Y ;

int Z[50] ;

Y = 56;

for(K=0;K<50;K++)

Z[K] = Y - 16 * ( K / 4 + 210) ;

. }

三.实验流程图

四.实验原理

为数组开辟一个内存空间,然后对变量赋初值,运算中乘法用左移操作,除

法用右移操作,利用bne不等于时就跳转来实现循环。五.实验代码

.data

k: .space 4

y: .space 4

z: .space 200 #开辟内存空间

.text

main:

la $s0,k

la $t0,y

la $s4,z

li $t0,0x38

li $s0,0x0 #分别赋初值

loop:

slti $s2,$s0,50

bne $s2,$0,content #循环条件判断

j done #不满足,则跳转到done content:

srl $s3,$s0,2 #除以4

addi $s3,$s3,210 #加上210

sll $s3,$s3,4

sub $s3,$t0,$s3 #t0是Y

sll $s5,$s0,2

add $a3,$s4,$s5 #a3是z[k]

sw $s3, 0($a3)

addi $s0,$s0,1

j loop

done:

li $v0, 10

syscall #结束六.实验结果

七.实验小结

通过本次从c语言转换到汇编语言的实验,我第三次实践论了汇编语言进行简单的操作,学会了(1)汇编语言如何开辟地址空间,(2)如何用汇编语言实现数组的创建和存储,(3)初步尝试了for条件语句的汇编语言的实现步骤

教训:由于忘记了$a0和$v0等的特殊性,误用了这些寄存器,导致实验结果迟迟不正确,后来发现并改正后,实现正确结果。,这种错误下次不会再犯了,以后会认真记住书本上的基本内容。

相关文档
最新文档