8086实验指导书-2016(定稿20161009) - 图文(5)

2019-08-30 17:10

PROTEUS-8086实验指导书

CODE SEGMENT

ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX MOV SI,OFFSET NUM1 MOV AX,0 ADD AX,[SI+0] ADD AX,[SI+2] ADD AX,[SI+4] MOV [SI+6],AX JMP $

CODE ENDS DATA SEGMENT NUM1 DW 1111H ;N1 NUM2 DW 2222H ;N2 NUM3 DW 3333H ;N3 NUM4 DW 0000H ;N4 DATA ENDS

END BEG

2、调试、验证

a.设置断点、单步运行程序,一步一步调试;

b.观察每一步运行时,8086内部寄存器的数值变化; c.检查验证结果。

六、 实验结果和体会

七、 建议

第19页

PROTEUS-8086实验指导书

实验二 循环程序设计

一、 实验要求

利用PROTEUS平台,建立8086 的循环程序的例子。

二、 实验目的

1、熟悉实验系统的编程和使用。

2、掌握使用LOOP判断转移指令实验循环的方法。

三、 实验说明

1、编制程序,使S=l+2×3+3×4+4×5+...+N(N+1),直到N(N+1)项大于200为止。

2、求某数据区内负数的个数。设数据区的第一单元存放区内数据的个数,从第二单元开始存 放数据,在区内最后一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内 的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得区内所包 含负数的个数。

四、 实验程序流程图

N BL ?AL BL+1?BL 1?DX 2?BL AL*BL?AX DX+AX?DX Y AX>200 Y 结束 图2-1 实验1流程图

第20页

PROTEUS-8086实验指导书

开始 数据区首址?DI 数据个数?CX CH、BL置0 DI增1 N

N 数据首位=1? Y BL+1?BL DI增1 CX=0? Y 存结果 结束 图2-2 实验2流程图

五、 实验步骤

1、Proteus仿真

a.在Proteus中新建两个工程“循环程序.pdsprj”,分别添加自己编写的汇编

代码,编译直至成功;

b.单步运行,打开调试窗口进行调试。 2、调试、验证

第21页

PROTEUS-8086实验指导书

a.设置断点、单步运行程序,一步一步调试;

b.观察每一步运行时,8086内部寄存器和变量的数值变化; c.检查验证结果。

六、实验结果和体会

七、 思考题

修改程序,使其能分别求出数据区中正数、零和负数的个数。

第22页

PROTEUS-8086实验指导书

实验三 分支程序设计

一、 实验要求

利用PROTEUS平台,建立8086 的分支程序的例子,实现数据块搬移。

二、 实验目的

1、熟悉实验系统的编程和使用。

2、掌握使用转移类指令编程及调试方法。 3、掌握各种标志位的影响。

三、 实验说明

程序要求把内存中一数据区(称为源数据块)传送到另一存贮区(称为目的数据块)。源数据块和目的数据块在存贮器中可能有三种情况,如图3-1所示。

FFFFH 00H 00H 00H 源数据块 (目的数据块) 源 数 据 块 目 的 数据 目的数据块 (或源数据块) FFFFH 目 的 数据 块 源 数 据 块 FFFFH

(a) (b) (c)

图3-1源与目的数据块的三种结构

对于两个数据块分离的情况,如图3—1(a)数据的传送从数据块的首址开始,或者从数据块的末址开始均可。但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”,而遭破坏。

可以得出如下结论。当源数据块首址>目的块首址时,从数据块首地址开始传送数据。当源数据块首址<目的块首址时,从数据块末地址开始传送数据。

第23页


8086实验指导书-2016(定稿20161009) - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:linux实验四

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: