【发布时间】:2017-10-20 17:08:09
【问题描述】:
在汇编语言中使用选择排序对包含十个数字的列表进行排序。 我如何将这种冒泡排序方法转换为选择排序方法
`[org 0x0100]
jmp start
data: dw 60, 55, 45, 50, 40, 35, 25, 30, 10, 0
swap: db 0
start: mov bx, 0 ; initialize array index to zero
mov byte [swap], 0 ; rest swap flag to no swaps
loop1: mov ax, [data+bx] ; load number in ax
cmp ax, [data+bx+2] ; compare with next number
jbe noswap ; no swap if already in order
mov dx, [data+bx+2] ; load second element in dx
mov [data+bx+2], ax ; store first number in second
mov [data+bx], dx ; store second number in first
mov byte [swap], 1 ; flag that a swap has been done
noswap: add bx, 2 ; advance bx to next index
cmp bx, 18 ; are we at last index
jne loop1 ; if not compare next two
cmp byte [swap], 1 ; check if a swap has been done
je start ; if yes make another pass
mov ax, 0x4c00 ; terminate program
int 0x21`
【问题讨论】:
-
当您在这里提出问题时,您真的想展示您迄今为止所做的研究以及您尝试过的内容。请参阅 StackOverflow 指南,了解如何提出好的问题:stackoverflow.com/help/how-to-ask 另外,我假设这是家庭作业。为此,你真的应该考虑这样问,确保你没有要求别人为你做作业。请参阅此元帖子:meta.stackoverflow.com/questions/334822/…