编写程序,比较数组ARRAY中的三个16位补码数,并根据结果显示如下信息 :如果三个数都不相等则显示0 ;如果三个数有两个相等则显示1 ;如果三个数都相等则显示

;编写程序,比较数组ARRAY中的三个16位补码数,并根据结果显示如下信息
;如果三个数都不相等则显示0
;如果三个数有两个相等则显示1
;如果三个数都相等则显示
DATA SEGMENT
ARRAY DW 1,1,1
DATA ENDS

STACK SEGMENT PARA STACK
      DW 128 DUP(?)
TOP   LABEL WORD
STACK ENDS

CODE SEGMENT
     ASSUME CS:CODE,SS:STACK,DS:DATA
MAIN PROC FAR
START:
         MOV AX,DATA
MOV DS,AX
 
MOV AX,STACK
MOV SS,AX
LEA SP,TOP
 
LEA SI,ARRAY
MOV AX,[SI]
ADD SI,2
MOV BX,[SI]
ADD SI,2
MOV CX,[SI]
 
CMP AX,BX          ;此题先把全相等和全不相等两种情况导出结果后再考虑最后一种
JE  L1             ;情况会容易做很多
JNE L3
L1:  CMP AX,CX
         JE  L2
JNE L6
L2:     MOV AH,2           ;L1->L2导出全相等
         MOV DL,32H
INT 21H
JMP EXIT
L3:    CMP AX,CX
         JNE L4
JE  L6
L4:    CMP BX,CX
         JNE L5
JE  L6
L5:    MOV AH,2            ;L3->L4->L5导出全部相等
         MOV DL,30H          ;最后一种情况在这两个结果的基础上进行分析会容易很多
INT 21H
JMP EXIT
 
L6: MOV AH,2
MOV DL,31H
INT 21H
 
EXIT:MOV AH,4CH
        INT 21H
CODE ENDS 
MAIN ENDP
     END START
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值