例3.编定程序,将带符号的字节数组ARRY中最大数找出来,送到MAX单元中。

3.编定程序,将带符号的字节数组ARRY中最大数找出来,送到MAX单元中。

分析:在字节数组中找出最大数,可以把每1个数送AL中,让AL与第2个数及它后面的每一个数进行比较,每次比较时将大者放AL中,最后把AL的值送MAX单元。

DATA SEGMENT
ARRY  DB 23H,78H,0ABH,0CDH,00H,56H
    DB  14H,86H,0EFH,0BCH,10H,0C0H
CNT EQU $-ARRY     ;字节个数
MAX  DB  ?    
DATA ENDS

STACK SEGMENT PAPA 'STACK'
DW 20H DUP(0)
STACK ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STEG  段地址说明
START:
    MOV AX,DATA
     MOV DS,AX  ;数据段地址装填
     LEA  SI,ARRY ;初始化地址指针 
     MOV CX,CNT-1 ;设置循环次数
     MOV AL,SI 
LOP1:  INC SI   ;地址指针增1
     CMP AL,[SI] ;与下一个数比较
     JGE  LOP2  ;大于等于时转LOP2
     MOV AL,[SI] ;取较大的数放AL寄存器中
LOP2: LOOP LOP1  ;判断终止条件,CX-1≠0则循环
     MOV MAX,AL  ;保存最大数
     MOV AH,4CH
INT 21H   ;返回DOS
CODE ENDS
   END START

posted on 2009-04-15 15:32  fatkun  阅读(900)  评论(0编辑  收藏  举报

导航