|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 suyunzzz 于 2017-11-19 15:01 编辑
data segment
buffersize db 40
realsize db ?
buffer db 50 dup(?)
db 0ah
db '$'
note db 'pease input 20 number:','$'
result db 'min=','$'
min db 2 dup(?)
db 0dh
db '$'
data ends
code segment
assume cs:code,ds:data
start:lea di,min
lea si,buffer
mov ax,data
mov ds,ax
lea dx,note
mov ah,09h
int 21h ;输出提示pease input 20 number:
lea dx,buffersize ;输入数值
mov ah,0ah
int 21h
lea dx,buffer ; 显示输入的10个数
mov ah,09h
int 21h
mov al,[si+1]
mov ah,[si]
sub ax,3030h ;非压缩bcd码
aad ;对应的16进制数
mov bl,al
clc
mov cx,9
s: mov al,[si+4]
mov ah,[si+3]
sub ax,3030h ;非压缩bcd码
aad ;对应的16进制数
cmp bl,al
jna no ;bl<=al时 不改变bl
mov bl,al ;al是最小的
add si,3 ;下一个和bl比较
loop s
jmp done
no: add si,3
loop s
done: mov al,bl ;16进制数变为非压缩bcd码然后变成ascii码
aam
or ax,3030h
mov [di],ah ;送至显示单元min
mov [di+1],al
lea dx,result ;显示提示min=
mov ah,09h
int 21h
lea dx,min ;显示最小值
mov ah,09h
int 21h
mov ax,4c00h
int 21h
code ends
end start
以上为代码 为啥我输出的时候会出现这种前面的无法显示的问题
谢谢各位大佬 |
-
运行后
-
运行前
|