用8086x编写一个程序,要求使用双循环冒泡法将一组数据从小到大排列
时间: 2023-11-22 16:56:50 浏览: 50
以下是用8086汇编语言编写的双循环冒泡排序程序,可以将一组数据从小到大排列:
```
.model small
.stack 100h
.data
array db 5, 3, 7, 1, 9, 2, 8, 4, 6, 0
array_size equ 10
.code
main proc
mov ax, @data
mov ds, ax
; 双循环冒泡排序
mov cx, array_size
dec cx ; cx = array_size - 1
OuterLoop:
mov si, 0 ; si 表示当前循环已排序好的元素个数
InnerLoop:
mov dx, si ; dx 表示当前循环的最后一个元素下标
inc dx
mov bx, dx ; bx 表示当前比较的两个元素下标
mov al, array[bx]
cmp al, array[bx-1]
jge NoSwap
xchg al, array[bx-1] ; 交换相邻元素
mov array[bx], al
mov si, bx ; 更新已排序好的元素个数
NoSwap:
inc bx
cmp bx, cx ; 判断是否循环结束
jbe InnerLoop
dec cx
cmp cx, 0 ; 判断是否循环结束
jne OuterLoop
; 输出排序后的结果
mov ah, 9
lea dx, array
int 21h
mov ah, 4ch
int 21h
main endp
end main
```
注意,这里只是一个示例程序,如果要对其他数据进行排序,需要修改`array`和`array_size`的值。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)