-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 –