码迷,mamicode.com
首页 > 其他好文 > 详细

计算机组成原理实验

时间:2015-05-19 00:28:06      阅读:1079      评论:0      收藏:0      [点我收藏+]

标签:

该文仅供参考...

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

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

 

计算机组成原理实验

标签:

原文地址:http://www.cnblogs.com/darkframemaster/p/4513281.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!