gpt4 book ai didi

arrays - 汇编语言中数组的冒泡排序

转载 作者:行者123 更新时间:2023-12-04 02:20:29 24 4
gpt4 key购买 nike

我需要对一个包含 7 个整数的无组织数组进行冒泡排序,使其看起来像 9,6,5,4,3,2,1。
我通过编译器运行我的代码,它说

Compiler Error

我不明白这段代码有什么问题:

code segment
assume ds:code,cs:code
start:
mov ax,code
mov ds,ax ;code start
ARR: dw 1,2,4,3,6,5,9
mov ch,0h
mov cl,1h
mov bh 7h
jmp assign_nums
restart:
mov ch,0h
mov cl,1h
dec bh
jmp assign_nums
swap:
mov ch,dl
mov cl,dh
jmp next
next:
cmp bh,cl
je restart
add ch,1h
add cl,1h
jmp assign_nums
assign_nums:
cmp bh,0h
je done
mov dh,[ARR+ch]
mov dl,[ARR+cl]
cmp dh,dl
jl swap
jnl next
done:
nop
code ends
end start

最佳答案

对于第一个错误,您忘记在寄存器和立即数之间输入逗号。

对于第二个和第三个错误,CH 和 CL 寄存器不能用于寻址内存。请改用 SI、DI 或 BX。

由于您的数组被定义为单词,因此您必须这样对待它!
改变

mov dh,[ARR+ch]
mov dl,[ARR+cl]

变成类似的东西(取决于你做出的其他选择)

mov ax,[ARR+si]
mov dx,[ARR+di]

请注意,您将数组放置在说明中。一旦您设法编译它,这将使您的程序崩溃。要么将数组放在程序的单独数据段中,要么跳过这一行。

start:
mov ax,code
mov ds,ax
jmp start2
ARR: dw 1,2,4,3,6,5,9
start2:
mov ch,0h

关于arrays - 汇编语言中数组的冒泡排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30427394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com