微机原理第一次实验

汇编语言程序设计实验报告

班级:通信1306 姓名:张金志学号:U201313788

一. 实验目的

1.

2. 3. 4. 5. 6.

掌握QTSPIM的调试技术;

了解MIPS汇编语言与机器语言之间的对应关系; 掌握MIPS汇编程序设计;

了解C语言语句与汇编指令之间的关系; 熟悉常见的MIPS汇编指令; 掌握程序的内存映像;

二. 实验内容

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

int K, Y ; int Z[50] ; Y = 56;

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

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

三. 实验流程图

初始化地址指针$4=offset(array)$t0=56$s0=0$s3=($s?+210)*16$s3=$t0-$s3$s5=$s0+8$a3=$s4+$s5Mem($s3)=$a3$s0=$s0+1$S2=$0-50是$S2<0否结束

四.实验原理

为数组开辟一个内存空间,然后对变量赋初值,运算中乘法用左移操作,除法用右移操作,利用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 content:

srl $s3,$s0,2 addi $s3,$s3,210 sll $s3,$s3,4

sub $s3,$t0,$s3 sll $s5,$s0,2 add $a3,$s4,$s5 sw $s3, 0($a3) addi $s0,$s0,1 j loop

done: li $v0, 10 syscall

#开辟内存空间 #分别赋初值 #循环条件判断

#不满足,则跳转到done #除以4 #加上210 #t0是Y

#a3是z[k] #结束

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4