Что я делаю не так?Этот код генерирует точные ряды Фибоначчи только до 13, после чего он дает неправильное значение.
Выход
1, 1, 2, 3, 5, 8, 13, 29, 37
Как и должно быть 21
после 13
а не 29
код
org 100h
.data
num dw 0
.code
main proc
mov ax, @data
mov ds, ax
mov cx, 15
mov bx, 1
mov si, offset num
fibonacci:
mov dx, [si] ;dx=0,1,1,2,3
add [si], bx ;num=1,1,2,3,5
mov bx, dx ;bx=0,1,1,2
mov di, [si]
add si,2
mov [si], di
loop fibonacci
main endp
end main
ret