微机原理实验报告Word文件下载.docx
- 文档编号:13653013
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:10
- 大小:42.10KB
微机原理实验报告Word文件下载.docx
《微机原理实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
IntK,Y;
IntZ[50];
Y=56;
For(k=0;
k<
50;
K++)Z[k]=Y-16*(k/4+210);
}
三、程序设计及分析
1.C语言分析:
有两个变量是int型,一个数组型;
还有一个循环执行过程。
2.汇编程序实现分析:
首先需要定义用户数据段,获得一个内存空间作为数组空间。
再选定几个寄存器作为K,Y以及输出,其中输出输出和Y可以合用一个寄存器。
3.设计思路:
分配完空间地址后,最重要的是完成循环控制。
循环控制有两个思路:
可以是先判断后循环;
或者是先循环后判断
即如图
开始
赋值
intK,Y;
intZ[50];
K=0;
Y=56;
计算
Z[K]=Y-16*(K/4+210);
K=k+1
K<
50
结束
slti$t2,$t0,50#判断k是否小于50,
beq$t2,$0,#是则结束
#否,循环
否
否是
是
slti$t2,$t0,50#判断k是否于50
beq$t2,$t3($t2=1循环,否则结束。
)
四、程序实现及调试分析
1.汇编程序代码实现:
方法一
.data#定义用户数据段
z:
.space200#数组为int型,大小为50,所以占内存4*50
str:
.asciiz"
"
#输出结果之间的空隙
.text
main:
la$s0,z#$s0#为数组在z[]
li$t0,0#$s1#代表k计数,初始值为0
li$t1,56#$t2#代表Y,初值为56
loop:
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]
li$v0,1#输出
addi$a0,$s0,0
syscall
li$v0,4#输出间隔
la$a0,str
addi$s0,$s0,4#地址移一位
addi$t0,$t0,1#k加1
jloop#循环
done:
li$v0,10
2.调试过程
1.编写程序:
详细见代码
2.装载程序
选择file,选择ReinitializeandLoadFile,把写好的文件导入QtSpim。
3.如果没有错误,便运行。
点击上图的小三角
运行之后点击不同的窗口便可得到我们想要的结果。
具体详细结果如下图
内存占用情况映像
分析:
由图可知数组地址从0Xfffff318—0Xfffff258;
每行有四个是一样的,总共50个地址。
这是因为数组含有50个元素,而int型数据占4个字节空间,字对齐方式,所以连续四个地址是相同的
而且有上表也可以得出Qpstim仿真器是按大字节序
数据段内存映像
表格如下(数值都采用16进制)
内存地址(16进制)
变量名
值
fffff318
Z[0]
268500992
fffff2b8
Z[25]
268501092
Z[1]
268500996
Z[26]
268501096
Z[2]
268501000
Z[27]
268501100
Z[3]
268501004
fffff2a8
Z[28]
268501104
fffff308
Z[4]
268501008
Z[29]
268501108
Z[5]
268501012
Z[30]
268501112
Z[6]
268501016
Z[31]
268501116
Z[7]
268501020
fffff298
Z[32]
268501120
fffff2f8
Z[8]
268501024
Z[33]
268501124
Z[9]
268501028
Z[34]
268501128
Z[10]
268501032
Z[35]
268501132
Z[11]
268501036
fffff288
Z[36]
268501136
fffff2e8
Z[12]
268501040
Z[37]
268501140
Z[13]
268501044
Z[38]
268501144
Z[14]
268501048
Z[39]
268501148
Z[15]
268501052
fffff278
Z[40]
268501152
fffff2d8
Z[16]
268501056
Z[41]
268501156
Z[17]
268501060
Z[42]
268501160
Z[18]
268501064
Z[43]
268501164
Z[19]
268501068
fffff268
Z[44]
268501168
fffff2c8
Z[20]
268501072
Z[45]
268501172
Z[21]
268501076
Z[46]
268501176
Z[22]
268501080
Z[47]
268501180
Z[23]
268501084
fffff258
Z[48]
268501184
Z[24]
268501088
Z[49]
268501188
点击Window选择console得下图
运行结果显示
代码段内存映像
地址机器码汇编指令
[00400014]0c100009
jal0x00400024[main]
[00400018]00000000
nop
[0040001c]3402000a
ori$2,$0,10
[00400020]0000000c
syscall
[00400024]3c101001
lui$16,4097[z]
[00400028]34080000
ori$8,$0,0
[0040002c]34090038
ori$9,$0,56
[00400030]290a0032
slti$10,$8,50
[00400034]11400010
beq$10,$0,64[done-0x00400034]
[00400038]00085882
srl$11,$8,2
[0040003c]216b00d2
addi$11,$11,210
[00400040]000b5900
sll$11,$11,4
[00400044]012b5822
sub$11,$9,$11
[00400048]ae0b0000
sw$11,0($16)
[0040004c]34020001
ori$2,$0,1
[00400050]22040000
addi$4,$16,0
[00400054]0000000c
[00400058]34020004
ori$2,$0,4
[0040005c]3c011001
lui$1,4097[str]
[00400060]342400c8
ori$4,$1,200[str]
[00400064]0000000c
syscall
[00400068]22100004
addi$16,$16,4
[0040006c]21080001
addi$8,$8,1
[00400070]0810000c
j0x00400030[loop]
[00400074]3402000a
[00400078]0000000c
[80000180]0001d821
addu$27,$0,$1
[80000184]3c019000
lui$1,-28672
[80000188]ac220200
sw$2,512($1)
[8000018c]3c019000
[80000190]ac240204
sw$4,516($1)
[80000194]401a6800
mfc0$26,$13
[80000198]001a2082
srl$4,$26,2
[8000019c]3084001f
andi$4,$4,31
[80
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 报告