汇编 十个数求其最大值(第二步)

上篇我们讲到如何将内存中的三个数找出来,这篇我们继续将找出来的三个数完成比较,并且把最大的那个数对应的ASCII码输出到屏幕

 

DATA SEGMENT
        DATABASE DB 61H,66H,56H
        DATA_MAX DB 00H
DATA ENDS

CODE SEGMENT
        ASSUME CS:CODE,DS:DATA
START:
        MOV AX,DATA
        MOV DS,AX

        MOV CX,3
        MOV BX,OFFSET DATABASE                                    ;将变量首地址放入BX寄存器
        MOV DL,BYTE PTR DS:[BX]                                        ;初始化DL寄存器为第一个数据
        MOV DATA_MAX,DL                                                     ;初始化最大值为第一个数据
GETMAX:
        MOV DL,BYTE PTR DS:[BX]
        CMP DL,DATA_MAX                                                        ;比较最大数和当前数
        JG TEMP                                                                             ;如果当前数大于前一步的最大数则跳转
SIGN:
        INC BX                                                                                ;地址加一,指向当前数的下一个数
        LOOP GETMAX                                                                ;循环求取最大值
        MOV DL,DATA_MAX
        MOV AH,02H
        INT 21H
        MOV AH,4CH
        INT 21H

TEMP:
        MOV DATA_MAX,DL
        JMP SIGN
CODE ENDS
        END START

 

posted @ 2019-01-30 15:45  IT蓝月  阅读(349)  评论(0编辑  收藏  举报
Live2D