当前位置:编程学习 > 汇编语言 >>

汇编,帮帮忙!!

有一个首地址为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]

上一个:汇编刚开始,谢谢帮忙
下一个:汇编熟手看一下,只要熟悉是不是高手都能解决这个问题.看下面一段代码

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,