當前位置:編程學習大全網 - 編程軟體 - 用匯編語言編寫若幹個無符號數中的最大值和最小值

用匯編語言編寫若幹個無符號數中的最大值和最小值

調試已通過,解題思路:

首先對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

  • 上一篇:c++ 為什麽hashmap占用內存多
  • 下一篇:用歐幾裏得算法把(150,42)表示為150和42的倍數和
  • copyright 2024編程學習大全網