📄 file1.asm
字号:
DATA SEGMENT
ARRAY DB 36,28,0,-12,-79,33,-5,67
MESS DB 0AH,0DH,"The largest number is:$"
C10 DB 10
MAX DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX ;装载DS
LEA BX,ARRAY ;数组首地址送BX
MOV CX,8 ;循环计数
BEGIN: MOV DL,[BX]
MOV DH,0
CMP DL,0
JGE LARGE ;正数跳走
NEG DL ;负数取反
LARGE: CMP DL,MAX
JLE SMALL ;比MAX小或等于,跳走
MOV MAX,DL ;比MAX大,将值给MAX
SMALL: INC BX
LOOP BEGIN
LEA DX,MESS
MOV AH,09H
INT 21H ;输出提示信息
LEA BX,ARRAY ;数组首地址送BX
MOV CX,8 ;循环计数
ONE: MOV DL,[BX]
MOV DH,0
CMP DL,MAX
JE DONE ;相等,跳走
LOOP ONE
MOV DL,2DH
MOV DH,0
MOV AH,02H
INT 21H ;向屏幕上输出负号
DONE: MOV CX,2 ;循环计数
MOV AL,MAX
TWO: MOV AH,0 ;高8位清零
DIV C10 ;执行16位除以8位
PUSH AX ;将余数(在AH中)压入堆栈
LOOP TWO
MOV CX,2 ;重置循环计数
THREE: POP DX ;从堆栈中弹出余数(在DH中)
XCHG DH,DL ;将余数交换到DL
OR DL,30H ;转换成数字的ASCII码
MOV DH,0
MOV AH,02H
INT 21H ;输出数字
LOOP THREE
MOV AX,4C00H ;返回DOS
INT 21H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -