汇编语言实现冒泡排序代码
时间: 2023-10-19 08:24:44 浏览: 157
用汇编语言实现冒泡排序算法
下面是汇编语言实现冒泡排序的代码,以8086为例:
```
DATA SEGMENT
ARR DB 10, 2, 8, 4, 6, 3, 7, 1, 9, 5
LEN EQU ($-ARR)/1
DATA ENDS
CODE SEGMENT
START:
MOV AX, @DATA
MOV DS, AX
MOV CX, LEN-1
OUTER_LOOP:
MOV SI, 0
INNER_LOOP:
MOV AL, ARR[SI]
CMP AL, ARR[SI+1]
JLE SKIP_SWAP
XCHG AL, ARR[SI+1]
MOV ARR[SI], AL
SKIP_SWAP:
INC SI
LOOP INNER_LOOP
DEC CX
JNZ OUTER_LOOP
MOV AH, 4CH
INT 21H
CODE ENDS
END START
```
代码中定义了一个长度为10的数组`ARR`,用于存储待排序的数据。`LEN`表示数组的长度。代码使用两个循环,外层循环控制排序的轮数,内层循环用于比较相邻两个元素并交换它们的位置。在内层循环中,使用`XCHG`指令交换两个元素的位置。最后使用系统调用`INT 21H`退出程序。
需要注意的是,这里的冒泡排序是对一个字节数组进行排序,因此使用了`DB`来定义数组类型。如果要对一个整数数组进行排序,需要使用`DW`来定义数组类型,并在比较和交换元素时使用`MOV`指令。
阅读全文