フィボナッチ数列の最初の 20 の数を 20 要素のベクトルに書き込む必要がある演習を実行しようとしましたが、コードが正しく機能しない理由がわかりません。シリーズの最初の 10 個の要素で機能しますが、認識できない問題があります。どう思いますか?これは私が書いたコードです:
DIM EQU 20
COUNT EQU 18
.model small
.stack
.data
vect dw DIM dup ?
.code
.startup
mov ax,1
mov bx,1
mov cx,COUNT
lea si,vect
mov [si],1
add si,2
ciclo: mov [si],bx
mov dx,bx
add bx,ax
mov ax,dx
add si,2
LOOP ciclo
.exit
end
アップデート
プログラムに表示されているとおりにコードを貼り付けませんでした。私が実行しているプログラムは次のように始まります。
ORG 100h
重要だとは思わなかったので省略。大切ですか?
元のコードをデバッグすると、次のようになります。に足を踏み入れciclo: mov [si],bx
ます。CXには 8 が含まれています。
シングルステップすると、プログラムが終了し、次PROGRAM HAS RETURNED CONTROL TO THE OPERATING SYSTEM
の図に示すように表示されます。
なぜこうなった?