微处理器实验报告-实验二

《微处理器》实验报告

学院:                  

班级:                  

姓名:                  

学号:                  

实验 分支程序实验

  • 实验要求

利用PROTEUS平台,建立8086 的分支程序的例子。

  • 实验目的

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

2、掌握使用转移类指令编程及调试方法。

3、掌握各种标志位的影响。

  • 实验说明

由于本实验是通过改变两个变量CON_A和CON_B 的大小,实现用CMP指令对不同标示位的影响的一个转移,分别设有大于、等于和小于。

  • 实验程序流程图

  • 实验步骤

1、Proteus仿真

a.在Proteus中打开设计文档“分支程序.pdsprj”;

b.单步运行,打开调试窗口进行调试。

参考程序:

CODE SEGMENT

       ASSUME CS:CODE

CON_A EQU  25

CON_B EQU  12

START:  

MOV AX,CON_A

MOV BX,CON_B

CMP AX,BX

JNC MO_T  ;AX > BX 跳转

JE  EQUA  ;AX = BX 跳转

JC  LESS  ;AX < BX 跳转

MO_T: JMP $

EQUA: JMP $

LESS: JMP $

CODE ENDS

       END START

2、调试、验证

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

b.观察每一步运行时,8086内部寄存器的数值变化;

c.改变两个变量的大小,观察三程序跳转的实现;

d.检查验证结果。

a. 

输入代码:

利用CON_A EQU  25;CON_B EQU  12;给AX赋初值25,12赋给BX,寄存器窗口分别显示AX、BX分别为19H、0CH。寄存器窗口最下一行FL表示标志寄存器,此图表示运行CMP指令后,仅AF为1,其余位为0

调试并观察:JNC MO_T  ;AX > BX 跳转

发现跳转到了AX>BX的情况,代表程序执行结果正确:

b. 

然后我们修改代码,令AX为2进行测试,发现CF、PF、AF、SF均为1:

C.

调试并观察:JC  LESS  ;AX < BX 跳转

在修改了AX的值后,我们单步执行代码,发现最终跳转到了AX<BX的情况:

d.

调试并观察:JE  EQUA  ;AX = BX 跳转

最后我们修改两个变量的大小,令AX=12,BX=12:

发现程序跳转到了AX>BX处,而且在寄存器窗口发现PF、ZF均为1

  • 实验结果

在原代码情况下,当AX=12,BX=12时,程序依然跳转到AX>BX附近,这是因为CF=0.故该程序出现逻辑错误。

改进方法:应当将JE语句置于JNC语句之前,应当先判断AX是否等于BX。                                                                                                                                 

     

                                                                  

  • 心得体会

通过本次实验,我学会了利用PROTEUS平台建立8086 的分支程序,这次试验的中心思想是通过改变两个变量CON_A和CON_B 的大小,实现用CMP指令对不同标示位的影响进行不同的转移。

在实验过程中容易出现一些错误,所以需要一步步的调试,相对于这样的程序,如果想要得到有效的实验结果,需要我们在设计程序的时候不断地进行调试,特别是要注意逻辑错误。

就拿这次的实验来说吧,在我们设计出程序代码之后,一共设置了“JNC MO_T;AX>BX跳转;JE EQUA;AX=BX跳转;JC LESS;AX<BX跳转;”这三种情况的转移指令,所以为了防止逻辑错误,我们需要进行通过改变变量AX和BX的值,实现对这三个条件的调试,以便得到正确的程序。

在这次实验当中,我进一步地了解了各种标志位所起到的作用,掌握了转移类指令的编程和调试方法,而且使用PROTEUS平台进行各种基础操作也变得更加地熟练了。                                                                                                                                                                                                                                                        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青竹小轩_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值