J'ai écrit un programme 8086, et autant que je sache, il fonctionne bien, mais quand il arrive à la partie où je déclare les variables, l'émulateur me donne une erreur. Lorsque vous essayez de lancer la ligne temp db 0x0F
, l'émulateur dit:Erreur: "inconnu opcode ignoré: 32"
unknown opcode skipped: 32
not 8086 instruction - not supported yet.
Voici mon programme complet:
org 100h
mov ah, temp ;put variables into registers
mov al, changed
mov dx, result
lea bx, temp ;get address of temp and put into bx
add dx, [bx] ;add value at the address in bx to result
lea bx, changed ;get address of changed and put into bx
add dx, [bx] ;add value at the address in bx to result
temp db 0x0F ;declare and initialize variables
changed db 32h
result dw 0
Est-ce en conséquence le fonctionnement du programme, et comment puis-je résoudre ce problème?
EDIT: sigjuice a résolu le problème, comme vous pouvez le voir dans les commentaires. Voici la version finale du programme qui fonctionne correctement:
.CODE
org 100h
mov ah, temp ;put variables into registers
mov al, changed
mov dx, result
lea bx, temp ;get address of temp and put into bx
add dx, [bx] ;add value at the address in bx to result
lea bx, changed ;get address of changed and put into bx
add dx, [bx] ;add value at the address in bx to result
.DATA
temp db 0x0F ;declare and initialize variables
changed db 32h
result dw 0
Quelles sont toutes les commandes pour assembler et lier votre programme et quel émulateur utilisez-vous? – sigjuice
@sigjuice Je le fais dans [emu8086] (http://www.emu8086.com/). Votre commentaire m'a amené à découvrir des directives d'assembleur, que je ne connaissais pas auparavant et que je n'utilisais pas. L'ajout des directives de l'assembleur '.CODE' et' .DATA' semble avoir corrigé le problème. Merci beaucoup. – tagurit
Vous êtes les bienvenus! Puis-je suggérer que cela serait utile aux autres si vous incluez la version finale de votre programme qui fonctionne avec succès? – sigjuice