我試圖做一個練習,我必須在20個元素向量中寫入斐波那契數列的前20個數字,但我不明白爲什麼代碼無法正常工作。它適用於該系列的前10個元素,但後來出現了一些我無法識別的問題。你怎麼看?這是我寫的代碼:EMU8086有錯誤,或者我寫錯了這個代碼?
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
UPDATE
我沒有代碼,正是因爲它出現在我的程序粘貼。我正在運行的程序開始於:
ORG 100h
我不認爲這很重要,所以我把它排除了。是不是重要?
以下是我在調試我的原始代碼時看到的內容。我步到ciclo: mov [si],bx
。 CX有8個。
當我單步,則程序退出,它說PROGRAM HAS RETURNED CONTROL TO THE OPERATING SYSTEM
如本圖片:
這究竟是爲什麼?
請提供更詳細的問題描述,而不是_「存在一些我無法識別的問題」_。 – Michael
你的模擬器沒有問題。 –
是的,這是一個複製/粘貼錯誤。關於「mov [si],1」這一行,如果我沒有錯,英特爾使用little endian,指定1的大小更正確,但並不重要。無論如何感謝你的幫助,現在我要發佈兩個截圖,因爲我在調試過程中發現了一些奇怪的東西。如果你仍然想幫助我,我將不勝感激。 – Pecho