汇编,帮帮忙!!
有一个首地址为A的N字数组,请编程序使该数组中的数按从大到小的次序排列
STACK SEGMENT STACK 'STACK'
DW 100H DUP(?)
TOP LABEL WORD
STACK ENDS
N=7
DATA SEGMENT
A DW N
DB 3H,25H,7H,16H,8H,32H,68H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,STACK
MOV SS,AX
LEA SP,TOP
MOV CX,A
PUSH CX
DEC CX
LEA SI,A+2
ADD SI,CX
LP1:
PUSH CX
PUSH SI
LP2:
MOV AL,[SI]
CMP AL,[SI-1]
JAE NOXCHG
XCHG AL,[SI-1]
MOV [SI],AL
NOXCHG:
DEC SI
LOOP LP2
POP SI
POP CX
LOOP LP1
POP CX
LP3:
LEA SI,A+2
MOV AL,[SI]
CALL DISPAL
INC SI
LOOP LP3
MOV AH,4CH
INT 21H
DISPAL PROC NEAR
PUSH AX
PUSH CX
PUSH DX
PUSH AX
MOV CL,4
SHR AL,CL
CALL CHANG
MOV AH,02
MOV DL,AL
INT 21H
POP AX
AND AL,0FH
CALL CHANG
MOV AH,02
MOV DL,AL
INT 21H
POP DX
POP CX
POP AX
RET
DISPAL ENDP
CHANG PROC NEAR
CMP AL,10
JNGE CHANG1
ADD AL,7
CHANG1:
ADD AL,30H
RET
CHANG ENDP
CODE ENDS
END START
不出结果。。。帮帮忙了!!!
答案:LP3:
LEA SI,A+2
MOV AL,[SI]
这里,标号LP3位置错了(导致每次循环SI都为固定值),应放在LEA SI,A+2语句后面,如下:
LEA SI,A+2
LP3:
MOV AL,[SI]
上一个:汇编刚开始,谢谢帮忙
下一个:汇编熟手看一下,只要熟悉是不是高手都能解决这个问题.看下面一段代码