8086汇编写冒泡排序
时间: 2023-10-13 13:23:40 浏览: 119
下面是一个简单的 8086 汇编程序,用于实现冒泡排序:
```
DATA SEGMENT
ARRAY DB 5, 3, 8, 1, 2
N DW 5
DATA ENDS
CODE SEGMENT
START:
MOV AX, @DATA
MOV DS, AX
MOV BX, N
DEC BX
MOV CX, BX
OUTER_LOOP:
XOR SI, SI
INNER_LOOP:
MOV AL, ARRAY[SI]
CMP AL, ARRAY[SI+1]
JLE SKIP_SWAP
MOV DL, ARRAY[SI+1]
MOV ARRAY[SI+1], AL
MOV ARRAY[SI], DL
SKIP_SWAP:
INC SI
CMP SI, CX
JNZ INNER_LOOP
DEC CX
JNZ OUTER_LOOP
MOV AH, 4CH
INT 21H
CODE ENDS
END START
```
这个程序使用冒泡排序来对 `ARRAY` 中的元素进行排序。`N` 存储了数组的大小,`BX` 初值为 `N-1`,用于外层循环。内层循环使用 `SI` 来遍历数组,比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置。内层循环结束后,`CX` 减 1,继续外层循环,直到 `CX` 为 0。程序最后使用 DOS 中断 `4CH` 来退出程序。
阅读全文