汇编冒泡排序求最大值和最小值
时间: 2023-07-22 21:01:31 浏览: 109
下面是汇编语言实现冒泡排序并求最大值和最小值的示例代码:
```
; 伪指令
.model small
.stack 100h
; 数据段
.data
array db 8, 5, 2, 6, 4, 7, 1, 3
n equ 8
; 代码段
.code
main proc
mov ax, @data
mov ds, ax
; 冒泡排序
mov cx, n
dec cx
loop1:
push cx
mov bx, 0
loop2:
mov al, array[bx]
cmp al, array[bx+1]
jge no_swap
xchg al, array[bx+1]
mov array[bx], al
no_swap:
inc bx
cmp bx, cx
jle loop2
pop cx
loop loop1
; 求最大值和最小值
mov al, array[0] ; 最小值
mov bl, array[n-1] ; 最大值
; 显示结果
mov ah, 09h
mov dx, offset msg1
int 21h
mov dl, al
add dl, 48 ; 转换成 ASCII 码
int 21h
mov dx, offset msg2
int 21h
mov dl, bl
add dl, 48
int 21h
mov ah, 4ch
int 21h
main endp
; 数据段
msg1 db 'Min: ', 0
msg2 db 'Max: ', 0
end main
```
这段代码使用了汇编语言中的冒泡排序算法对一个数组进行排序,并求出了最大值和最小值,最后将结果显示在屏幕上。在代码中,`array` 数组是待排序的数组,`n` 是数组的长度。排序后,最小值存储在 `array[0]` 中,最大值存储在 `array[n-1]` 中。
阅读全文