注册 登录
编程论坛 汇编论坛

[求助]一个愚蠢的问题

kill444 发布于 2006-05-31 15:05, 514 次点击
定义10个2位十进制无符号数(0-99),求出最大数和最小数,利用系统功能调用将此最大数和最小数如以下格式:
MAX: **
MIN :**
输出。
(用汇编语言写出程序)

程序如下:
data segment
max db ?
min db ?
block db 11h,22h,33h,44h,55h,66h,77h,88h,99h,54h
count equ $-block
data ends
code segment
assume ds:data, cs:code
start:mov ax,data
mov ds,ax
mov dx,offset block
mov al,[bx]
mov ah,[bx]
inc bx
mov cx,count-1
again:cmp al,[bx]
jae next1
mov al,[bx]
jmp next
next1:cmp ah,[bx]
jbe next
mov ah,[bx]
next: inc bx
dec cx
jnz again
mov max,al
mov min,ah
mov ah,02h
int 21h
mov ah,4ch
int 21h
ret
code ends
end start


哪位帮我运行一下,我怎么运行结果是一个不认识的符号???
如果有错误帮我改改,谢谢!!!!
1 回复
#2
xxygdufs2006-06-03 22:20

data segment
max db ?
min db ?
block db 1,2,3,4,5,6,7,8,9
count equ $-block
buf1 db 'max:$'
buf2 db 'min:$'
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax

mov si,offset block
mov cx,count-1
mov al,[si] ;取第一个数为最大的数,后面的各数依次和它比较,大,则MAX替换为该数,小则MIN替换为该数
mov max,al
mov min,al

again:mov al,[si+1] ;从第二个数开始取起
cmp al,max
jae next1
cmp al,min
jbe next2
jmp next3
next1:mov max,al
jmp next3
next2:mov min,al
next3:inc si
loop again

mov dx,offset buf1
mov ah,09h
int 21h
mov dl,max
add dl,30h
mov ah,02h
int 21h
mov dx,offset buf2
mov ah,09h
int 21h
mov dl,min
add dl,30h
mov ah,02h
int 21h

mov ah,4ch
int 21h
code ends
end start

1