作业帮 > 综合 > 作业

汇编语言看看这段有什么问题 三个有符号数比较大小将最大的放在MAX变量里

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 02:40:20
汇编语言看看这段有什么问题 三个有符号数比较大小将最大的放在MAX变量里
DATAS SEGMENT
BUF DW 2002H,9000H,789aH
MAX DW
DATAS ENDS
STACKS SEGMENT
STK DB 100 DUP(0)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,BUF
MOV BX,BUF+2
MOV CX,BUF+4
CMP AX,BX
JGE NEXT1
XCHG AX,BX
JGE NEXT1
NEXT1:
CMP AX,CX
JGE NEXT2
MOV MAX,CX
NEXT2:
MOV MAX,AX
MOV AH,4CH
INT 21H
CODES ENDS
END START
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,BUF
MOV BX,BUF+2
MOV CX,BUF+4
CMP AX,BX
JGE NEXT1
XCHG AX,BX
JGE NEXT1 ;(去掉此句)
NEXT1:
CMP AX,CX
JGE NEXT2
MOV MAX,CX
JMP NEXT3 ;(添加此句)
NEXT2:
MOV MAX,AX
NEXT3: ;(添加此句)
再问: 我在debug里边调试了一下和之前的情况一样,max的地址单元里边的内容是FFFF,还是不对
再答: 我刚debug跟了下流程是这样的 CMP AX,BX JGE NEXT1 NEXT1: CMP AX,CX MOV MAX,CX 最终结果为789aH,并不是像你说的FFFF 可能因为9000H当做负数处理的