题目:
已知数据块BUF中存放3个字节数据,是编写一个程序判断这3个数的关系:如果3个数相等,则显示“All equal.”;如果有任意两个数相等,则显示“Only two equal.”;如果三个数各不相同,则显示“All three different from each other.”。
DATA SEGMENT
BUFF DB 2,2,2
STRING1 DB 'All three different from each other$'
STRING2 DB 'Only two equal$'
STRING3 DB 'All equal$'
DATA ENDS
STACK SEGMENT
DW 10 DUP(?)
TOP LABEL WORD
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,DS:DATA
MAIN PROC FAR
MOV AX,STACK
MOV SS,AX
LEA SP,TOP
MOV AX,DATA
MOV DS,AX
MOV CX,0
LEA SI,BUFF
MOV AL,[SI]
INC SI
MOV BL,[SI]
INC SI
MOV DL,[SI]
CMP AL,BL
JNE L1
INC CX ;用于记录两数是否相等,相当于一个标志寄存器
L1:CMP AL,DL
JNE L2
INC CX
L2:CMP BL,DL
JNE L3
INC CX
L3:CMP CX,0
JNE L4
LEA DX,STRING1
JMP L6
L4:CMP CX,1
JNE L5
LEA DX,STRING2
JMP L6
L5:LEA DX,STRING3
L6:MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
MAIN ENDP
CODE ENDS
END MAIN