私は与えられた配列の最小値を計算するコードを書いています。考えられるのは最初の要素をとり(最小値だと考えて)、残りの要素(4アセンブリ内の指定された配列の最小値を見つけます。
array dw 7,4,12,5,1
mov si,00h
mov ax,array[si]
mov cx,5
minimum:
inc si ;find the minimum value
mov dx,array[si]
cmp ax,dx
jb nochange
swap:
xchg ax,dx
nochange:
dec cx
cmp cx,0
JNE minimum
lastcmp: ; to compare the last item with the minimum value and swap if it's smaller
mov dx,array[si]
cmp ax,dx
jb endi
xchg ax,dx
end
が、私はここでの問題を持っているように、それはいつも私を与えるので、それはすべての要素ではなく、最後の1を比較するように思える。そして、ここで私は1つを小さく見つけるその場合には値を交換しては私のコードです)それは私に(1)、助けを与えることです!
Damn ... **決して使わないで 'array [si]' never!あなたは何をしているのか分からない。あなたの配列は、バイトではない単語の配列です!アセンブリにはインデックス付き配列アクセスはありません! –
あなたは最後のステップ "lastcmp"を意味します!私はそれを比較できるようにdxレジスタに移動しました! –
いいえ、私はこれを意味します。 –