Frage zu einer Aufgabenstellung
-
Hallo ich bin noch ganz neu in dieser Sparte und kenn mich echt noch nicht aus. Hier meine Frage:
Gegeben ist die Gleichung Z = (X * 3 + Y) / 20. Deklarieren Sie für X, Y jeweils eine Byte-Variable mit jeweils einem positiven Initialwert und für Z eine Byte-Variable für den Quotienten und eine für den Divisionsrest. Diese beiden Variablen sollen keinen bestimmten Initialwert haben. Schreiben Sie für die Gleichung eine 8086-Befehlsfolge.
Hier kommt mein geistiger Erguss:
datseg SEGMENT var_x db 01 var_y db 02 var_z db ? var_zr db ? datseg ENDS mov Ax, 3 mul var_x add Ax, var_y div 20 mov var_z, AL mov var_zr, AH
Wir arbeiten in der FH mit dem Program emu8086 - assembler (daheim haben wir nur die Demo-Version) http://www.emu8086.com/. Allerdings hab ich Probleme beim compilieren kann mir jemand sagen wo meine Fehler liegen?
Danke schonmal im voraus
Rille :xmas1: :xmas2:
-
Je nachdem, wie sehr ihr dieses Thema noch vertieft, wuerde ich mal empfehlen, einen vernuenftigen Assembler auf deine codes anzusetzen - der erzaehlt dir dann schon, wo deine Fehler liegen.
Wie dem auch sei, spiele ich eben mal Assembler:datseg SEGMENT var_x db 01 var_y db 02 var_z db ? var_zr db ? datseg ENDS mov Ax, 3 mul var_x add Ax, var_y ;<--- ungueltige Kombination von Operanden ;~Beide Operanden muessen die gleiche Bitbreite haben div 20 ;<--- ungueltiger Operand: direkte Fixzahl ;~Akzeptiert nur Register oder Speichervariablen mov var_z, AL mov var_zr, AH
Wie du das beheben kannst, bekommst du, denke ich, auch selbst raus.