汇编-分支结构程序设计(8086)

在这里插入图片描述

实验内容

编写程序计算上面表达式。设X为带符号字数据,存在内存的DAX单元,结果存入DAY单元。如果结果为0,则在显示器上输出字符0;如果为负,则在显示器上输出“-”;否则在显示器上输出“+”。使用DEBUG工具调试程序,查看程序运行结果。

算法描述

算法及其步骤:
首先将DAX中的数据读入到AX中,将AX与0比较,如果AX的值小于等于0跳转到ABSL,反之再将AX与10进行比较,如果AX的值小于等于10跳转到ONE,反之再将AX与40进行比较,如果AX的值小于等于40跳转到TWO,反之跳转到MOVE中。
ONE:AX加上1000跳转到MOVE
TWO:让CL的值为3,让AX左移3位,让AX加上DAX,再AX - 6,然后跳转到MOVE
MOVE:将结果存入DAY中,再将AX与0比较大小,如果等于0跳转到THREE,小于0跳转到FOUR,大于0则就在屏幕上输出+
THREE:在屏幕上显示0,跳转到ENS
FOUR: 在屏幕上显示‘-’
ENS: 结束

实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
实验结果分析:
实验结果与预期完全吻合
结果为负时显示“-”
结果为零时显示“0”
结果为正时显示“+”

源程序清单

DSEG SEGMENT
DAX  DW  0;可以输入值
DAY  DW  0
DSEG ENDS
CSEG SEGMENT
           ASSUME  CS:CSEG,DS:DSEG
BEGIN:     MOV  AX,DSEG
           MOV  DS,AX
           MOV  AX,DAX
           CMP  AX,0
           JLE  ABSL
           CMP  AX,10
           JLE  ONE
           CMP  AX,40
           JLE  TWO
           JMP  MOVE
ONE:       ADD  AX,1000
           JMP  MOVE 
TWO:       MOV  CL,3 
           SHL  AX,CL
           ADD  AX,DAX
           SUB  AX,6
           JMP  MOVE    
ABSL:     NEG  AL;
MOVE:    MOV  DAY,AX
	       CMP  AX,0
	       JZ   THREE
	       JL   FOUR
	       MOV  AH,2
	       MOV  DL,'+'
	       INT  21H
	      JMP  ENS
THREE:	   MOV  AH,2
          MOV  DL,'0'
	      INT  21H
	      JMP  ENS
FOUR:	   MOV  AH,2
	      MOV  DL,'-'
	      INT  21H
ENS:     MOV  AX,4C00H
         INT  21H
CSEG 	  ENDS
         END    BEGIN
  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dearzcs

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

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

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

打赏作者

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

抵扣说明:

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

余额充值