版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、微機(jī)原理實驗報告實驗名稱:MIPS匯編程序設(shè)計院系:電信學(xué)院班級:指導(dǎo)老師:實驗?zāi)康模?. 熟悉 MIPS 匯編程序開發(fā)環(huán)境,學(xué)習(xí)使用 Qtstim 工具。知道如何查 看存空間分配。2. 了解C語言語句與匯編指令之間的關(guān)系。3. 掌握MIPS匯編程序設(shè)計,掌握QTSPIM的調(diào)試技術(shù)。4. 了解MIPS匯編語言與機(jī)器語言之間的對應(yīng)關(guān)系。5. 熟悉常見的MIPS匯編指令6.掌握程序的存映像。二、實驗容1. 用匯編程序?qū)崿F(xiàn)以下偽代碼:要求使用移位指令實現(xiàn)乘除法運算。Int main ()Int K,Y;Int Z50;Y=56;For(k=0;k<50;K+) Zk=Y-16*(k4/+210
2、);二、程序設(shè)計及分析1. C語言分析:有兩個變量是int型,一個數(shù)組型;還有一個循環(huán)執(zhí)行過程。2匯編程序?qū)崿F(xiàn)分析:首先需要定義用戶數(shù)據(jù)段,獲得一個存空間作為數(shù)組空間。再選定幾個寄存器作為K,丫以及輸出,其中輸出輸出和 Y可以合用一個寄存器。3設(shè)計思路:分配完空間地址后,最重要的是完成循環(huán)控制。循環(huán)控制有兩個思路:可以是先判斷后循環(huán);或者是先循環(huán)后判斷即如圖開始開始賦值賦值int K, Y ;int Z50 ;K=0;Y =int K, Y ;int Z50 ;K=O;Y =計算+計算K=<+1(+否K=k+1結(jié)束slti $t2,$t0,50 #判斷 k 是否于 50beq $t2,$
3、t3 ($t2=1 循環(huán),否則結(jié)束。)slti $t2,$t0,50 #判斷k是否小于50,beq $t2,$0, #是則結(jié)束#否,循環(huán)四、程序?qū)崿F(xiàn)及調(diào)試分析1.匯編程序代碼實現(xiàn):方法一.data #定義用戶數(shù)據(jù)段z:.space 200數(shù)組為int型,大小為50,所以占存4*50str:.asciiz ""#輸出結(jié)果之間的空隙.textmain: la $s0,z #$s0 #為數(shù)組在 zli $t0,0 #$s1 #代表 k 計數(shù),初始值為 0li $t1,56 #$t2 #弋表 Y,初值為 56loop:slti $t2,$t0,50 #判斷 k 是否于 50beq
4、$t2,$0,done #當(dāng)k大于等于50,跳轉(zhuǎn)結(jié)束 srl $t3,$t0,2 #k/4addi $t3,$t3,210 #k/4+210sll $t3,$t3,4 #16*(k/4+210)sub $t3,$t1,$t3 #y-16*(k/4+210)sw $t3,0($s0) #寫進(jìn) zkli $v0,1#輸出addi $a0,$s0,0syscallli $v0,4 #輸出間隔la $a0,strsyscall addi $s0,$s0,4 #地址移一位j loop #循環(huán)done:li $v0,10syscall2調(diào)試過程1. 編寫程序:詳細(xì)見代碼2. 裝載程序QtSpim-File
5、 Simuldlur Hcgisteis ItSegment Data Segrnenl Wiidow HelpfVZl*rll$l>*t»Ttil選擇file,選擇Re in itialize and Load File把寫好的文件導(dǎo)入 QtSpim。3. 如果沒有錯誤,便運行。點擊上圖的小三角運行之后點擊不同的窗口便可得到我們想要的結(jié)果。具體詳細(xì)結(jié)果如下圖存占用情況映像Vs«x data s«gment lOOOOCOO10040000100000DD1,.lOOOffff0000000010010000Jffftfiiefffff318fffffjis
6、10010019fffff308fffff3oefffff30&fffff3061D0100ZOJfffffZfSfffff2f8fffff2f3fffff2f8100100301fffff2eSfffff2e8fffff2e9ffff2eC10Q1004DfffffZdSfffffEdSfffffZdBfffffZdS10010050fffff2c9fffff2c8fffff2c9fffff2c610010060fffff2bSfffff2b8fffffZbafffff2bS10010070fffff2a0fffff2a8fffff2aSfffff2aS100100BOfffff29
7、8fffff290fffff259fffff29810010090fffff296fffff20&fffff289fffff2G6lOOlOOaOJfffff27Bfffff278fffff270fffff27SflOOlOObOlfffff268fffff2SlOOlOQcQJ20202020CQCC C20lOOlOOdOl1003ffff00000000分析:由圖可知數(shù)組地址從 0Xfffff318 0Xfffff258; 每行有四個是一樣的,總共50個地址。這是因為數(shù)組含有50個元素,而int型數(shù) 據(jù)占4個字節(jié)空間,字對齊方式,所以連續(xù)四個地址是相同的而且有上表也可以得出Qps
8、tim仿真器是按大字節(jié)序數(shù)據(jù)段存映像表格如下(數(shù)值都米用16進(jìn)制)存地址(16進(jìn)制)變量名值存地址(16 進(jìn)制)變量名值fffff318Z0268500992fffff2b8Z25268501092fffff318Z1268500996fffff2b8Z26268501096fffff318Z2268501000fffff2b8Z27268501100fffff318Z3268501004fffff2a8Z28268501104fffff308Z4268501008fffff2a8Z29268501108fffff308Z5268501012fffff2a8Z30268501112fffff3
9、08Z6268501016fffff2a8Z31268501116fffff308Z7268501020fffff298Z32268501120fffff2f8Z8268501024fffff298Z33268501124fffff2f8Z9268501028fffff298Z34268501128fffff2f8Z10268501032fffff298Z35268501132fffff2f8Z11268501036fffff288Z36268501136fffff2e8Z12268501040fffff288Z37268501140fffff2e8ffff288Z3
10、8268501144fffff2e8ffff288Z39268501148fffff2e8ffff278Z40268501152fffff2d8Z16268501056fffff278Z41268501156fffff2d8ffff278Z42268501160fffff2d8ffff278Z43268501164fffff2d8Z19268501068fffff268Z44268501168fffff2c8Z20268501072fffff268Z45268501172fffff2c8Z2
11、1268501076fffff268Z46268501176fffff2c8Z22268501080fffff268Z47268501180fffff2c8Z23268501084fffff258Z48268501184fffff2b8Z24268501088fffff258Z49268501188點擊 Window選擇console得下圖運行結(jié)果顯示Console_ 26850G99226850099626850100026650100426950100325850101226850101626950102026BSO1G242695G102B2635010322oc5C'lJ3c2
12、635010402bb5UlC442fcS5CjlO4S2685010522585010562C850106026050106426350106326B50107226650107626950108026B5G1G0426S501Q552685010923«85010»626350110026B5Q11Q42685011DB2&B50111226B50111626950112026050112426050112026350113226E50113C2C8501L4Q26850114126850114B25B50115226050115626350116026B501
13、16426050116026350117226E50117626850118026B50L184269501183代碼段存映像地址機(jī)器碼匯編指令004000140c100009jal 0x00400024 mai n0040001800000000nop0040001c3402000aori $2, $0, 10004000200000000csyscall004000243c101001lui $16, 4097 z0040002834080000ori $8, $0, 00040002c34090038ori $9, $0, 5600400030290a0032slti $10, $8,
14、500040003411400010beq $10, $0, 64 do ne-0x004000340040003800085882srl $11, $8, 20040003c216b00d2addi $11, $11,21000400040000b5900sll $11, $11,400400044012b5822sub $11, $9, $1100400048ae0b0000sw $11, 0($16)0040004c34020001ori $2, $0, 10040005022040000addi $4, $16, 0004000540000000csyscall004000583402
15、0004ori $2, $0, 4地址機(jī)器碼匯編指令0040005c 3c011001lui $1,4097 str00400060 342400c8ori $4, $1,200 str00400064 0000000csyscall00400068 22100004addi $16, $16, 40040006c 21080001addi $8, $8, 100400070 0810000cj 0x00400030 loop00400074 3402000aori $2, $0, 1000400078 0000000csyscall80000180 0001d821addu $27, $0,
16、 $180000184 3c019000lui $1, -2867280000188 ac220200sw $2, 512($1)8000018c 3c019000lui $1, -2867280000190 ac240204sw $4, 516($1)80000194 401a6800mfc0 $26, $1380000198 001a2082srl $4, $26, 28000019c 3084001fandi $4, $4, 31800001a0 34020004ori $2, $0, 4800001a4 3c049000lui $4, -28672 _m1 _800001a8 0000
17、000csyscall800001ac 34020001ori $2, $0, 1800001b0 001a2082srl $4, $26, 2800001b4 3084001fandi $4, $4, 31800001b8 0000000csyscall800001bc 34020004ori $2, $0, 4800001c0 3344003candi $4, $26, 60800001c4 3c019000lui $1, -28672800001c8 00240821addu $1, $1, $4800001cc 8c240180lw $4, 384($1)800001d0 000000
18、00nop800001d4 0000000csyscall800001d8 34010018ori $1, $0, 24800001dc 143a0008bne $1, $26, 32 ok_pc-0x800001dc800001e0 00000000nop800001e4 40047000mfc0 $4, $14800001e8 30840003andi $4, $4, 3800001ec 10040004beq $0, $4, 16 ok_pc-0x800001ec800001f0 00000000nop800001f4 3402000aori $2, $0, 10800001f8 000
19、0000csyscall800001fc 34020004ori $2, $0, 480000200 3c019000lui $1, -28672 _m2 _地址機(jī)器碼匯編指令80000204 3424000dori $4, $1, 13 _m280000208 0000000csyscall8000020c 001a2082srl $4, $26, 280000210 3084001fandi $4, $4, 3180000214 14040002bne $0, $4, 8 ret-0x8000021480000218 00000000nop8000021c 401a7000mfc0 $26, $1480000220 275a0004addiu $26, $26, 480000224 409a7000mtc0 $26, $1480000228 3c019000lui $1, -286728000022c 8c220200lw $2, 512($1)80000230 3c019000lui $1, -2867280000234 8c240204lw $4, 516($1)80000238 001b0821addu $1, $0, $278000023c 40806800mtc0 $0, $1380000240 401a6000mfc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年離婚冷靜期法定合同指南版
- 2024年版國際房地產(chǎn)代理銷售合同
- 綠色食品種植技術(shù)推廣合同
- 二零二五年度OEM委托加工合同:家具定制加工協(xié)議書3篇
- 2024年禁牧區(qū)域畜牧業(yè)發(fā)展規(guī)劃合同
- 音樂作品版權(quán)交易與授權(quán)服務(wù)合同
- 2025年度電子產(chǎn)品維修服務(wù)合同范本3篇
- 2024年汽車零部件生產(chǎn)合同承包協(xié)議范本3篇
- 二年級數(shù)學(xué)計算題專項練習(xí)1000題匯編集錦
- 兒童游樂場連鎖經(jīng)營管理合作協(xié)議
- 機(jī)動車維修竣工出廠合格證
- 陜西延長石油精原煤化工有限公司 60 萬噸 - 年蘭炭綜合利用項目 ( 一期 30 萬噸 - 年蘭炭、1 萬噸 - 年金屬鎂生產(chǎn)線)竣工環(huán)境保護(hù)驗收調(diào)查報告
- 大病救助申請書
- 法學(xué)概論-課件
- 廈門物業(yè)管理若干規(guī)定
- 外科護(hù)理學(xué)試題+答案
- 齊魯醫(yī)學(xué)屈光和屈光不正匯編
- 貨架的技術(shù)說明(一)
- 【高等數(shù)學(xué)練習(xí)題】皖西學(xué)院專升本自考真題匯總(附答案解析)
- 高處作業(yè)安全技術(shù)交底-
- 工抵房協(xié)議模板
評論
0/150
提交評論