計算機組成原理實驗


該文僅供參考...

實驗一:監控程序與匯編實驗

實驗控制開關:00110

實驗要求:從鍵盤輸入一個數字,則計算該值到10的累加。

>a 2000
in 81
shr r0
shr r0
jrnc 2000    
in 80
mvrd r1,ff30
mvrd r2,000a
sub r0,r1    //將r0中存儲的數字的ascii碼轉化為數字
mvrr r3,r0
inc r0      //r0自加一
add r3,r0    //將r0累加到r3
cmp r0,r2
jrnz 200B    
ret

實驗三:存儲器擴展實驗

實驗控制開關:00110

實驗要求:從鍵盤上輸入一個0-9的數字,將從該數字開始到F的所有數據存儲到擴展之后的5000開始的EEPROM存儲單元中。

>a 2000
in 81
shr r0
shr r0
jrnc 2000
in 80
mvrd r1,ff30
mvrd r2,5000
mvrd r3,000f
sub r0,r1
strr [r2],r0    //將r0中的數據存入地址為r2的存儲單元中
mvrd r9,0000  //由於EEROM芯片存儲速度慢,所以設置以下的循環以確保數據能夠寫入EEROM中
mvrd r10,0fff
inc r9
cmp r9,r10
jrnz (inc r9)    //(inc r9)為上面的inc r9語句對應的地址 
inc r0
inc r2
strr [r2],r0
cmp r0,r3
jrnz (mvrd r9,0000) //(mvrd r9,0000)為上面對應語句的位置

基於上面的問題,完成輸入數字到F的累加,並將累加和存儲在存儲‘F’的后續單元中

>a 2000
in 81
shr r0
shr r0
jrnc 2000
in 80
out 80
mvrd r1,ff30
mvrd r2,5000
mvrd r3,000f
sub r0,r1
mvrr r1,r0                //將r0存入r1中,r1將作為累加的結果                      
strr [r2],r0
mvrd r9,0000
mvrd r10,0fff
inc r9
cmp r9,r10
jrnz (inc r9)    //(inc r9)為上面對應語句的地址
inc r0
inc r2
add r1,r0                  //將累加的結果存入r1中
strr [r2],r0
cmp r0,r3
jrnz (mvrd r9,0000)    //(mvrd r9,0000)為上面對應語句的地址
inc r2
strr [r2],r1
ret

實驗四:中斷實驗

實驗控制開關:00010

實驗要求:

a.主程序循環顯示字母‘M‘,如果捕捉到中斷源1的時候在屏幕循環顯示數字1;捕捉到中斷源2的時候在屏幕上循環顯示數字‘2’;捕捉到中斷源3的時候在屏幕上循環顯示數字‘3‘;

b.需要實現在中斷顯示的過程中,如果按下任意按鍵則中斷返回上一級程序繼續運行;

c.實驗以優先級為主要依據的嵌套;

>e 2000
6e00                    //6e00為EI的機械碼,表示開中斷

>a 2001
mvrd r0,004D
cala 2200            //執行在2200的子程序 該子程序用於輸出字符
mvrd r0,4000
dec r0
jrnz (dec r0)        //(dec r0)為上面對應語句的地址
jr 2001                //跳到2001循環執行主程序
ret

>a 2404              //右邊的中斷開關的編程地址2404
jr 2420               //跳轉到2420 我們將在其中寫入中斷代碼        
>a 2420
push r0
push r3
mvrd r3,0031
jr 2450

>a 2408              //中間的中斷開關的編程地址2408    
jr 2430
>a 2430
push r0
push r3
mvrd r3,0032
jr 2450

>a 240c              //左邊的中斷開關的編程地址240c
jr 2440
>a 2440
push r0
push r3
mvrd r3,0033
jr 2450

>a 2450                    //三個子程序共用代碼段   
mvrr r0,r3
cala 2200
out 80
mvrd r0,4000
in 81
shr r0
shr r0
jrnc (mvrr r0,r3)        //(mvrr r0,r3)為上面對應語句的地址
pop r0

>e (pop r0)            //(pop r0)為上面對應語句的地址
EF00                    //EF00為關中斷IRET的機械碼        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM