華科-HUST-微機原理-MIPS匯編程序設計-實驗報告_第1頁
華科-HUST-微機原理-MIPS匯編程序設計-實驗報告_第2頁
華科-HUST-微機原理-MIPS匯編程序設計-實驗報告_第3頁
華科-HUST-微機原理-MIPS匯編程序設計-實驗報告_第4頁
華科-HUST-微機原理-MIPS匯編程序設計-實驗報告_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

微機原理實驗報告學號 姓名 華中科技大學 專業 通信1301 指導教師 羅杰 院(系、所) 電信學院 MIPS匯編程序設計實驗要求1.完成匯編語言程序設計、調試、測試全過程2.指出用戶程序的內存映像,包括代碼段和數據段3.進一步了解QTSpim的使用方法2.實驗任務用匯編程序實現以下偽代碼:intmain(){intK,Y;intZ[50];Y=56;for(k=0;k<50;k++)Z[K]=Y-16*(K/4+210);}思路:本題目涉及到循環,故要通過slti操作來控制循環,首先用space操作來為Z數組分分配空間,然后將Z數組的初地址存在寄存器$s3中,然后分別給K,Y賦初值,然后通過移位來實現乘除運算,將最后的表達式的值存在Z數組里,注意存儲的位置為Z[K],故需要考慮地址偏移問題,最后通過slti和bne操作來控制循環,以及調用10號功能結束程序3.實驗過程源代碼:.dataZ:.space200str:.asciiz""str1:.asciiz"["str2:.asciiz"Z"str3:.asciiz"]="str4:.asciiz"hex="str5:.byte0x20,0x30,0x78hex:.space8.byte0x00enter:.asciiz"\n"str6:.asciiz"addr=".textmain:la$s3,Zli$t0,0li$t1,56li$s1,50loop:srl$t2,$t0,2addi$t2,$t2,210sll$t2,$t2,4sub$t2,$t1,$t2sll$t3,$t0,2add$t3,$s3,$t3sw$t2,0($t3)li$v0,4la$a0,str6syscallli$v0,1add$a0,$t3,$0syscallli$v0,4la$a0,strsyscallli$v0,4la$a0,str2syscallli$v0,4la$a0,str1syscallli$v0,1add$a0,$t0,$0syscallli$v0,4la$a0,str3syscallli$v0,1add$a0,$t2,$0syscallli$v0,4la$a0,str4syscallla$s4,hexaddi$s4,$s4,7li$s5,8rep:andi$s6,$t2,0xfaddi$s6,$s6,0x30slti$t4,$s6,0x3abne$t4,$0,lessaddi$s6,$s6,0x07less:sb$s6,0($s4)addi$s4,$s4,-1addi$s5,$s5,-1srl$t2,$t2,4slti$t4,$s5,1beq$t4,$0,repli$v0,4la$a0,str5syscallli$v0,4la$a0,entersyscalladdi$t0,$t0,1bne$t0,$s1,loopli$v0,10Syscall4.實驗結果內存映像數據段代碼段、5、實驗小結本次試驗雖然簡單,但是一定要注意寄存器編號不能混淆,而且要注意跳轉條件的正確用法,程序出錯之后要學會用單步調試和設置斷點的方法來找出錯誤,這樣便能高效地找出錯誤所在,及時改正。關于選做的將10進制數變為16進制數

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論