回 帖 发 新 帖 刷新版面

主题:大侠们请帮小弟编个程序,小弟不胜感激!

题目是:两位十六进制无符号数最小值查找(由用户输入任意个,<20) 
  希望大家帮个忙编下..在下感激不胜感激...下面这个怎么改能满足题目有要求呢,最好改简单点,我不想设置什么断点的
STACK SEGMENT STACK
      DB 200 DUP(?)
STACK ENDS
DATA  SEGMENT
BUF   DB 34H,22H,4FH,5BH,9H,23H,0A1H,65H,99H
N     EQU $-BUF
MAX   DB ?
DATA  ENDS
CODE  SEGMENT
      ASSUME CS:CODE,DS:DATA,SS:STACK
START:
     MOV AX,DATA
     MOV DS,AX
     
     MOV SI,OFFSET BUF  ;数据首址àSI
     MOV CX,N           ;数据个数àCX
     
     CALL MAX
     MOV MAX,BH       ;存入最大值
                   
     MOV AH,4CH
     INT 21H
MAXPROC
     PUSH AX
     
     MOV BH,[SI]      ;将第一个数据àBH,BL
     DEC CX         ;需比较的数据个数减1
     
A1:  INC SI
     MOV AL,[SI] 
     CMP AL,BH
     JB A2
     MOV BH,AL

A2:  LOOP A1     ;循环,直到CX=0       
     
     POP AX
     RET
MAXENDP
CODE   ENDS
END START   

回复列表 (共2个回复)

沙发

呜呜,没人帮忙!?

板凳


STACK SEGMENT STACK
      DB 200 DUP(?)
STACK ENDS
DATA  SEGMENT
BUF   DB 34H,22H,4FH,5BH,9H,23H,0A1H,65H,99H
N     EQU $-BUF
MIN   DB ?
DATA  ENDS
CODE  SEGMENT
      ASSUME CS:CODE,DS:DATA,SS:STACK
START:
     MOV AX,DATA
     MOV DS,AX
     
     MOV SI,OFFSET BUF  ;数据首址àSI
     MOV CX,N           ;数据个数àCX
     
     CALL MAX
     MOV MIN,BH       ;存入最小值
                   
     MOV AH,4CH
     INT 21H
MAX PROC
     PUSH AX
     
     MOV BH,[SI]      ;将第一个数据àBH,BL
     DEC CX         ;需比较的数据个数减1
     
A1:  INC SI
     MOV AL,[SI] 
     CMP AL,BH
     JA A2
     MOV BH,AL

A2:  LOOP A1     ;循环,直到CX=0       
     
     POP AX
     RET
MAXENDP
CODE   ENDS
END START   

我来回复

您尚未登录,请登录后再回复。点此登录或注册