-1
所以我刚开始在我的大学里学习8086,我正在尝试在汇编中实现气泡排序。这里的问题似乎是,3245和2563的比较产生一个进位,因此它不应该因此而改变。当它真的不应该生产? (8086汇编)
3245
- 2563
______
0CE2
______
代码: -
data segment
array dw 1535h,3245h,2563h,5632h
data ends
code segment
start: assume cs:code, ds:data
mov dx,data
mov ds,dx
mov bx,0004h
step1: lea si,array
mov dx,bx
dec dx
mov cx,dx
jz lbl
step: mov ax,[si]
cmp ax,[si+1]
jc down
xchg ax,[si+1]
xchg ax,[si]
down: add si,2
loop step
dec bx
jnz step1
lbl: mov ax,4c00h
int 21h
code ends
end start
出了什么问题?请原谅,因为我只是想学习这个概念。
你确定你想'[SI + 1]'和'不[SI + 2]'? –
所有'[si + 1]'都是错误的,大概你的意思是'[si + 2]'得到下一个元素。每个字是2个字节。 PS:学习使用调试器。 – Jester
上帝该死的我很愚蠢。谢谢@SamiKuhmonen –