内容发布更新时间 : 2025/2/2 15:48:56星期一 下面是文章的全部内容请认真阅读。
汇编语言程序设计实验报告
班级:通信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] #结束