1 / 6
文档名称:

汇编语言实验报告-程序控制并行IO接口.pdf

格式:pdf   大小:643KB   页数:6页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

汇编语言实验报告-程序控制并行IO接口.pdf

上传人:1781111**** 2024/5/11 文件大小:643 KB

下载得到文件列表

汇编语言实验报告-程序控制并行IO接口.pdf

相关文档

文档介绍

文档介绍:该【汇编语言实验报告-程序控制并行IO接口 】是由【1781111****】上传分享,文档一共【6】页,该文档可以免费在线阅读,需要了解更多关于【汇编语言实验报告-程序控制并行IO接口 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..IO接口1,实验任务及要求任务:用汇编程序实现以下伪代码,要求采用移位指令实现乘除法运算。intmain(){intK,Y;intZ[50];Y=56;for(K=0;K<50;K++)Z[K]=Y-16*(K/4+210);}要求?完成汇编语言程序设计、调试、测试全过程?指出用户程序的内存映像,包括代码段和数据段?把Z[K]在屏幕上显示出来实验思路和代码思路;将伪代码翻译#################Datasegment#####################.dataz:.space200#################Codesegment#####################.textmain:#K$s0;Y$s1;Z$s2;$t2zk的地址addi$s1,$0,56#y=56add$s0,$0,$0#k=0la$s2,z#z的首地址loop:beq$s0,50,exit#k=50则退出sll$t1,$s0,2#z的偏移地址add$t2,$t1,$s2#zk的物理地址srl$t3,$s0,2addi$t3,$t3,210sll$t3,$t3,4sub$t3,$s1,$t3#计算结果存入$t3sw$t3,0($t2)#结果存入内存li$v0,4la$a0,str1syscallli$v0,1:..#Ksyscallli$v0,4la$a0,str2syscallli$v0,1lw$a0,0($t2)#显示Z【k】syscalladdi$s0,$s0,1#K+1jloopexit:li$v0,10syscall测试过程(1)将写好的代码载入QtSpim,点击运行后可以看见汇编指令的机器码和寄存器的值,可以根据寄存器的最终值验证代码有无问题。图一代码段及寄存器情况(2)随后将将代码在Mars上运行,可以看到数据段的结果。其中0x10010000-0x100100c4是数组Z[k]的值,中存放的是我提前定义的值。图二数据段:..)在Mars的runI/O中查看结果,结果无误。[0]0x100100000xfffff318-3304Z[1]0x100100040xfffff318-3304Z[2]0x100100080xfffff318-3304Z[3]0x1001000c0xfffff318-3304Z[4]0x100100100xfffff308-3320Z[5]0x100100140xfffff308-3320Z[6]0x100100180xfffff308-3320Z[7]0x1001001c0xfffff308-3320:..0x100100200xfffff2f8-3336Z[9]0x100100240xfffff2f8-3336Z[10]0x100100280xfffff2f8-3336Z[11]0x1001002c0xfffff2f8-3336Z[12]0x100100300xfffff2e8-3352Z[13]0x100100340xfffff2e8-3352Z[14]0x100100380xfffff2e8-3352Z[15]0x1001003c0xfffff2e8-3352Z[16]0x100100400xfffff2d8-3368Z[17]0x100100440xfffff2d8-3368Z[18]0x100100480xfffff2d8-3368Z[19]0x1001004c0xfffff2d8-3368Z[20]0x100100500xfffff2c8-3384Z[21]0x100100540xfffff2c8-3384Z[22]0x100100580xfffff2c8-3384Z[23]0x1001005c0xfffff2c8-3384Z[24]0x100100600xfffff2b8-3400Z[25]0x100100640xfffff2b8-3400Z[26]0x100100680xfffff2b8-3400Z[27]0x1001006c0xfffff2b8-3400Z[28]0x100100700xfffff2a8-3416Z[29]0x100100740xfffff2a8-3416Z[30]0x100100780xfffff2a8-3416Z[31]0x1001007c0xfffff2a8-3416Z[32]0x100100800xfffff298-3432Z[33]0x100100840xfffff298-3432Z[34]0x100100880xfffff298-3432Z[35]0x1001008c0xfffff298-3432Z[36]0x100100900xfffff288-3448Z[37]0x100100940xfffff288-3448Z[38]0x100100980xfffff288-3448Z[39]0x1001009c0xfffff288-3448Z[40]0x100100a00xfffff278-3464Z[41]0x100100a40xfffff278-3464Z[42]0x100100a80xfffff278-3464Z[43]0x100100ac0xfffff278-3464Z[44]0x100100b00xfffff268-3480Z[45]0x100100b40xfffff268-3480Z[46]0x100100b80xfffff268-3480Z[47]0x100100bc0xfffff268-3480Z[48]0x100100c00xfffff258-3496Z[49]0x100100c40xfffff258-3496:..00400000lw$4,0($29)8fa4000000400004addiu$5,$29,427a5000400400008addiu$6,$5,424a600040040000csll$2,$4,20004108000400010addu$6,$6,$200c2302100400014jal0x004000240c10000900400018nop000000000040001cori$2,$0,103402000a00400020syscall0000000c00400024addi$17,$0,562011003800400028add$16,$0,$0000080200040002clui$18,4097[z]3c12100100400030ori$1,$0,5034010032beq$1,$16,96[exit-00400034103000180x00400034]00400038sll$9,$16,2001048800040003cadd$10,$9,$180132502000400040srl$11,$16,20010588200400044addi$11,$11,210216b00d200400048sll$11,$11,4000b59000040004csub$11,$17,$11022b582200400050sw$11,0($10)ad4b000000400054ori$2,$0,43402000400400058lui$1,4097[str1]3c01**********cori$4,$1,200[str1]342400c800400060syscall0000000c00400064ori$2,$0,13402000100400068add$4,$0,$16001020200040006csyscall0000000c00400070ori$2,$0,43402000400400074lui$1,4097[str2]3c01100100400078ori$4,$1,204[str2]0040007csyscall0000000c00400080ori$2,$0,13402000100400084lw$4,0($10)8d44000000400088syscall0000000c0040008caddi$16,$16,12210000100400090j0x00400030[loop]0810000c00400094ori$2,$0,103402000a00400098syscall0000000c:..心得体会汇编语言编程,因为不熟悉的原因,首先要把思路写成代码然后再从转变成汇编原因。另外汇编语言比更加底层也更繁琐。比如在显示的Z[k]的指令,c只需要printf一行代码;而汇编语言则需要调用3次系统功能函数。但是它可以查看寄存器的状态和值,这是c语言做不到的。并且,通过这次实验,我对汇编语言的认识加深了。