2017-02-16 1 views
-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 

問題のようですか?私はただの概念を学ぼうとしているので、間違いを許してください。

+3

あなたは '[SI + 1]'はなく '[SI + 2]'よろしいですか? –

+2

'[si + 1]'は間違っています。おそらく '[si + 2]'は次の要素を得ることを意味していました。各単語は2バイトです。 PS:デバッガの使い方を学んでください。 – Jester

+1

私はばかです。おかげさま@SamKuhmonen –

答えて

0

[RESOLVED]

は交換してくださいすべての[SI + 1]と[SI + 2]

関連する問題