PROTEUS-8086实验指导书
四、 实验程序流程图
开始 SI?源数据块首址 DI?目的数据块首址 CX?搬家字节数
N CX=0? Y < SI?SI+CX-1 DI?DI+CX-1 SI>DI? > [DI]?[SI] [DI]?[SI] SI? SI-1 DI? DI-1 CX?CX-1 SI?SI+1 DI?DI+1 CX? CX-1 N CX=0? Y 结束 图3-2 分支程序流程图
五、 实验步骤
1、Proteus仿真
a.在Proteus中新建工程“分支程序.pdsprj”,添加自己编写的汇编代码,编
译直至成功;
b.单步运行,打开调试窗口进行调试。 2、调试、验证
a.设置断点、单步运行程序,一步一步调试;
b.观察每一步运行时,8086内部寄存器和变量的数值变化;
第24页
PROTEUS-8086实验指导书
c. 改变源地址中的内容、长度,试试移动的结果; d. 检查、验证结果。
六、 实验结果和体会
七、 思考题
为什么当源数据块首址>目的块首址时,应从数据块首地址开始传送数据?而当源数据块首址<目的块首址时,应从数据块末地址开始传送数据?
第25页
PROTEUS-8086实验指导书
实验四 数码转换实验
一、 实验要求
利用PROTEUS平台,实现8086 的二进制、十进制和BCD码互相转换。
二、 实验目的
1、熟悉实验系统的编程和使用。
2、掌握简单的数值转换算法。 3、基本了解数值各种表达方法。
三、 实验说明
计算机与外设间的数码转换关系如图4-l所示,数码对应关系如表4-1所示。
ASCII码 ASCII码 键 盘 CRT显示 ASCII码 主 ASCII码 光电机 打印机 BCD码 段 码 拔码开关 多段显示 机 二进制 二进制
数据开关 位显示 图4-1数码转换关系
表4-l数码对应关系
十六进制数 0 1 2 3 4 5 6
BCD码 0000 0001 0010 0011 0100 0101 0110 二进制机器码 0000 0001 0010 0011 0100 0101 0110 ASCII码 30H 31H 32H 33H 34H 35H 36H 第26页
七段码 共阳 共阴 40H 3FH 79H 06H 24H 5BH 30H 4FH 19H 66H 12H 6DH 02H 7DH PROTEUS-8086实验指导书
7 8 9 A B C D E F 0111 1000 1001 0111 1000 1001 1010 1011 1100 1101 1110 1111 37H 38H 39H 41H 42H 43H 44H 45H 46H 78H 00H 18H 08H 03H 46H 21H 06H 0EH 07H 7FH 67H 77H 7CH 39H 5EH 79H 71H 四、 实验程序流程图
加下一位ASCII码减30H
N 转换完否? Y 存入结果单元并停机 乘10 取第一位ASCII码 减去30H n-1?cx 定义源、目标地址定义转换位数n
图4-2 十进制数转换为二进制数流程图
第27页
PROTEUS-8086实验指导书
N CX?循环计数初值 DI?3500H BL?错误标志“FF” AL?ASCII码 Y AL≥3AH? N AL<30H? N 取入ASCII码低四位 BL?AL Y AL?BL 存入结果,修改地址 CX-1=0 Y 结果 图4-3 十进制数转换为非压缩型的BCD码流程图
五、 实验步骤
1、Proteus仿真
a.在Proteus中新建两个工程“XX进制转XX码.pdsprj”,分别添加自己编写
的汇编代码,编译直至成功;
b.设置断点、运行程序,打开调试窗口进行调试。 2、调试、验证
a.设置断点、单步运行程序;
b.观察程序运行到断点时,8086内部寄存器和变量的数值变化; c.验证实验结果。
第28页