Ich schrieb ein 8086 Programm, und soweit ich sagen kann, läuft es gut, aber wenn es zu dem Teil kommt, wo ich die Variablen deklariere, gibt der Emulator mir einen Fehler. Beim Versuch, die Linie temp db 0x0F
zu laufen, sagt der Emulator:Fehler: "unbekannter Opcode übersprungen: 32"
unknown opcode skipped: 32
not 8086 instruction - not supported yet.
mein volles Programm hier:
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
Ist das Folge, wie die Programmfunktionen, und wie kann ich es beheben?
EDIT: sigjuice löste das Problem, wie Sie in den Kommentaren sehen können. Hier ist die endgültige Version des Programms, das richtig läuft:
.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
Was sind alle Befehle zum Zusammenbauen und Verknüpfen Ihres Programms und welchen Emulator verwenden Sie? – sigjuice
@sigjuice Ich mache das in [emu8086] (http://www.emu8086.com/). Ihr Kommentar hat mich dazu gebracht, Assembler-Anweisungen zu finden, die ich vorher nicht kannte und nicht verwendete. Das Hinzufügen der Assembler-Direktiven '.CODE' und' .DATA' scheint das Problem behoben zu haben. Vielen Dank. – tagurit
Gern geschehen! Kann ich vorschlagen, dass es für andere nützlich wäre, wenn Sie die endgültige Version Ihres Programms, die erfolgreich ausgeführt wird, enthalten? – sigjuice