用汇编编写排序并显示出来
时间: 2023-09-10 12:06:52 浏览: 88
好的,以下是一个使用汇编语言实现冒泡排序并显示结果的示例代码:
```
; 冒泡排序并显示结果
; 假设要排序的数组存放在内存地址 1000H ~ 1009H
; 排序结果将存放在相同的内存地址
.model small
.stack 100h
.data
arr db 5, 3, 7, 1, 9, 2, 0, 8, 6, 4 ; 待排序数组
.code
start:
mov ax, @data
mov ds, ax
; 冒泡排序
mov cx, 9 ; 循环次数
outer_loop:
mov si, 0 ; 数组下标从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
cmp si, cx
jl inner_loop
dec cx
jnz outer_loop
; 显示排序结果
mov si, 0
mov ah, 2 ; 调用DOS中断显示字符
print_loop:
mov dl, arr[si]
add dl, 30h ; 将数字转换为字符
int 21h
inc si
cmp si, 10
jnl end_program
mov dl, ','
int 21h
jmp print_loop
end_program:
mov ah, 4ch
int 21h
end start
```
这段代码使用冒泡排序算法对一个长度为10的数组进行排序,然后将排序结果显示在屏幕上。您可以将这段代码保存为.asm文件,使用汇编器(如MASM)进行编译和链接,然后运行生成的可执行文件来查看排序结果。