计算机组成原理实验

该文仅供参考...

实验一:监控程序与汇编实验

实验控制开关: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的机械码        

 

转载于:https://www.cnblogs.com/darkframemaster/p/4513281.html

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值