用8086汇编语言写一个排序10个有符号数字并输出
时间: 2024-05-14 14:19:23 浏览: 122
下面是用8086汇编语言实现的冒泡排序算法,可以对10个有符号数字进行排序并输出:
```
.model small
.stack 100h
.data
array db 5, -2, 9, -1, 3, 0, -4, 8, -7, 6
msg db 'Sorted array: $'
.code
main proc
mov ax, @data
mov ds, ax
; 冒泡排序算法
mov cx, 10 ; 循环10次
mov si, 0
outer_loop:
mov di, si
inner_loop:
mov al, array[di]
cmp al, array[di+1]
jle skip_swap
xchg al, array[di+1]
mov array[di], al
skip_swap:
inc di
loop inner_loop
inc si
loop outer_loop
; 输出排序后的数组
mov ah, 09h ; 选择文本模式输出
lea dx, msg
int 21h
mov cx, 10
mov si, 0
print_loop:
mov al, array[si]
cmp al, 0 ; 判断正负号
jge print_positive
neg al ; 取反
mov dl, '-'
int 21h
mov dl, al
jmp print_end
print_positive:
mov dl, al
print_end:
add dl, 30h ; 转换为ASCII码
int 21h
mov dl, ','
int 21h
inc si
loop print_loop
mov ah, 4ch
int 21h
main endp
end main
```
注意,这里只是一个简单的示例,实际应用中可能需要对输入进行检查和错误处理。
阅读全文