用汇编语言编写若干个无符号数中的最大值和最小值

来源:百度知道 编辑:UC知道 时间:2024/05/19 00:34:06
题目:试编程实现将内存中的若干个无符号数据中的最大值和最小值找出来,并开辟独立的存储区域保存结果.希望各位帮帮忙 我自己写的在link -- obj 后 一运行--exe 就会自动关闭界面,不知道怎么回事,也检查不出错误,在debug后 能找到最小值 没最大值,希望那个高手帮我写个正确的,我回非常谢谢 一定要是正确的,呵呵 调试不出来的不需要

调试已通过,解题思路:
首先对10个数按从小到大排序,然后第一个元素就是最小的,最后一个元素就是最大的
data segment
mes1 db 'the max:$'
mes2 db 'the min:$'
a dw 42,20,100,456,99,120,89,12334,90,1239
data ends

code segment
main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax

mov ax,data
mov ds,ax
;以下是起泡排序核心代码
mov cx,10
dec cx

loop1:
mov di,cx
mov bx,0
loop2:
mov ax,a[bx]
cmp a[bx+2],ax
jge cotinue
xchg ax,a[bx+2]
mov a[bx],ax

cotinue:
add bx,2
loop loop2
mov cx,di
loop loop1

mov dx,offset mes1
mov ah,09h
int 21h
call crlf
mov bx,a[18]
call bini ;转换为十进制的子程序

call crlf ;回车换行子程序
mov dx,offset mes2
mov ah,09h
int 21h
call crlf
mov bx,a[0]
call bini
ret
main endp

bini proc near