用汇编语言求一组数的最大值和最小值

首先对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 
mov cx,10000d 
call bin 
mov cx,1000d 
call bin 
mov cx,100d 
call bin 
mov cx,10d 
call bin 
mov cx,1d 
call bin 
ret 
bini endp 

bin proc near 
mov ax,bx 
mov dx,0 
div cx 
mov bx,dx 
mov dl,al 
add dl,30h 
mov ah,02h 
int 21h 
ret 
bin endp 

crlf proc near 
mov dl,0ah 
mov ah,02h 
int 21h 
mov dl,0dh 
mov ah,02h 
int 21 
ret 
crlf endp 
code ends 
end start
  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值