您的位置:首页 > 理论基础

计算机组成原理实验

2015-05-18 22:47 741 查看
该文仅供参考...

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

实验控制开关: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的机械码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: