读书人

求解.该如何解决

发布时间: 2012-03-27 13:44:24 作者: rapoo

求解...
NAME SEARCH_MAX
DATA SEGMENT
BUFFER DW X1,X2,…,Xn
COUNT EQU $-BUFFER
MAX DW
DATA ENDS
STACK SEGMENT PAPA STACK'STACK'
DB 64 DUP(?)
TOP EQU $STACK
STACK ENDS
CODE SEGMENT
START PROC FAR
ASSUME CS:CODE,DS:DATA,SS:STACK
BEGIN: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV CX,COUNT
LEA BX,BUFFER
MOV AX,[BX]
INC BX
DEC CX
AGAIN: CMP AX,[BX]
JGE NEXT
MOV AX,[BX]
NEXT: INC BX
LOOP AGAIN
START ENDP
CODE ENDS
END BEGIN

[解决办法]

探讨

引用:

....代码是书上的...书上说是个循环神马的...但没看懂...

噢,上面说错了,应该是把buffer后面的找最小的放到ax……

[解决办法]
AGAIN: CMP AX,[BX]
JGE NEXT
MOV AX,[BX]
NEXT: INC BX
LOOP AGAIN
主要就是这一段,使用的是冒泡法求最大值[BX]对应的是buffer中数据的地址(上面一大串也就是为了这个,以及保护现场)
最后buffer中的最大值存在AX中

读书人网 >汇编语言

热点推荐