📄 findmax1.asm
字号:
data segment
M db 'I am a student are you.'
sum db 80 dup(?)
count db ?
count1 db ?
flag db ?
data ends
code segment
assume cs:code,ds: data
start:
mov count1,0
mov count,0
mov flag,0
mov ax,data
mov ds,ax
mov si,0
mov di,0
next:
cmp M[si],'.'
jz input1
cmp M[si],' '
jz input
cmp flag,0
jz next3
jmp sum1
next3:
mov sum[di],si
sum1:
mov flag,1
inc count
inc si
jmp next
input1:
mov count1,1
input:
mov flag,0
inc di
mov al,count
mov sum[di],al
mov count,0
inc di
inc si
cmp count1,1
jz exit
jmp next
exit:
dec di
mov cx,di
mov di,1
mov bl,sum[1]
find:
inc di
inc di
cmp di,cx
ja exit1
cmp bl,sum[di]
jb change1
jmp find
change1:
xchg bl,sum[di]
mov si,di
mov sum[1],bl
inc di
inc di
cmp di,cx
ja exit1
jmp find
exit1:
mov cx,0
mov ax,0
mov dx,0
mov bx,0
mov al,sum[1]
cbw
mov cl,10
div cl
mov dh,ah
add al,30H
mov dl,al
mov ah,2
int 21h
add dh,30H
mov dl ,dh
mov ah,2
int 21h
mov dl,' '
mov ah,2
int 21h
dec si
mov cl,sum[1]
mov di,si
mov bl,sum[di]
mov di,bl
next2:
mov dl,M[di]
mov ah,2
int 21h
inc di
dec cl
cmp cl,0
jz exit3
jmp next2
exit3:
mov ah,4ch
int 21h
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -