主题:求一道简单程序题
我自学汇编语言只有一断时间,发现有很多都不会,今天自已做了一道程序,发现错误很,但不知错在哪,请各位高手帮忙,谢谢各位
程序题目是:给任意三个数,找出最大数 程序如下:
DATA1 SEGMENT
X DW ?
Y DW ?
Z DW ?
RESULT DW ?
DATA1 ENDS
STACK1 SEGMENT PARA STACK
DW 20 DUP(0)
STACK1 ENDS
CODE1 SEGMENT
ASSUME CS:CODE1,DS:DATA1,SS:STACK1
START: MOV AX,DATA1
MOV DS,AX
MOV AX,X
MOV BX,Y
CMP AX,BX
JGE L1
MOV CX,Z
CMP BX,CX
JGE L2
MOV CX,Z
MOV RESULT,CX
JMP L4
L2: MOV BX,X
MOV RESULT,BX
JMP L4
L1: MOV CX,Z
CMP AX,CX
JGE L3
MOV CX,Z
MOV RESULT,CX
L3: MOV AX,X
MOV RESULT,AX
L4: MOV AH,4CH
INT 21H
CODE1 ENDS
END START
我分别用1,2,3代入检查
保存后我用DEBUG程序观察结果
当X=1,Y=2,Z=3时,最大值是3
当Z=3,X=1,Y=2时,最大值是3
当Z=3,Y=2,X=1时,最大值是3
但是之后的却是错的
当X=1,Z=3,Y=2时,最大值是1
当Y=2,X=1,Z=3时,最大值是2
当Y=2,Z=3,X=1时,最大值是2
我检查了好几编,都不知错在哪,请各位高手帮忙,在下感激不尽!!!!!!!!!!
程序题目是:给任意三个数,找出最大数 程序如下:
DATA1 SEGMENT
X DW ?
Y DW ?
Z DW ?
RESULT DW ?
DATA1 ENDS
STACK1 SEGMENT PARA STACK
DW 20 DUP(0)
STACK1 ENDS
CODE1 SEGMENT
ASSUME CS:CODE1,DS:DATA1,SS:STACK1
START: MOV AX,DATA1
MOV DS,AX
MOV AX,X
MOV BX,Y
CMP AX,BX
JGE L1
MOV CX,Z
CMP BX,CX
JGE L2
MOV CX,Z
MOV RESULT,CX
JMP L4
L2: MOV BX,X
MOV RESULT,BX
JMP L4
L1: MOV CX,Z
CMP AX,CX
JGE L3
MOV CX,Z
MOV RESULT,CX
L3: MOV AX,X
MOV RESULT,AX
L4: MOV AH,4CH
INT 21H
CODE1 ENDS
END START
我分别用1,2,3代入检查
保存后我用DEBUG程序观察结果
当X=1,Y=2,Z=3时,最大值是3
当Z=3,X=1,Y=2时,最大值是3
当Z=3,Y=2,X=1时,最大值是3
但是之后的却是错的
当X=1,Z=3,Y=2时,最大值是1
当Y=2,X=1,Z=3时,最大值是2
当Y=2,Z=3,X=1时,最大值是2
我检查了好几编,都不知错在哪,请各位高手帮忙,在下感激不尽!!!!!!!!!!