J'ai essayé de faire un exercice où je dois écrire dans un vecteur de 20 éléments les 20 premiers nombres de séries de fibonacci, mais je ne peux pas comprendre pourquoi le code ne fonctionne pas correctement. Cela fonctionne pour les 10 premiers éléments de la série, mais il y a un problème que je ne peux pas reconnaître. Qu'est-ce que tu penses? Voici le code que j'ai écrit:EMU8086 at-il un bogue ou ai-je fait une erreur en écrivant ce code?
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
MISE À JOUR
Je ne l'ai pas coller le code exactement tel qu'il apparaît dans mon programme. Le programme que je cours commence par:
ORG 100h
Je ne pensais pas que c'était important, donc je l'ai laissé de côté. Est-ce important?
Voici ce que je vois quand je débogue mon code original. Je passe à ciclo: mov [si],bx
. CX a 8 dedans.
Quand je seule étape le programme se termine et il dit alors PROGRAM HAS RETURNED CONTROL TO THE OPERATING SYSTEM
comme le montre cette image:
Pourquoi est-ce qui se passe?
Veuillez fournir une description plus détaillée du problème que _ "il y a un problème que je ne peux pas reconnaître" _. – Michael
Votre émulateur n'est pas en faute. –
Oui, c'était une erreur de copier/coller. En ce qui concerne la ligne "mov [si], 1", si je ne me trompe pas, Intel utilise peu endian, et en spécifiant la taille de 1 est plus correct, mais n'est pas si important. En tout cas merci pour l'aide, maintenant je vais poster deux captures d'écran car j'ai trouvé quelque chose d'étrange lors du débogage. Si vous voulez toujours m'aider, je serai reconnaissant. – Pecho