Hilfe bei RAL Befehl Assambler ( DVT03N)

Ich habe hier ein kleines Verständnis Problem, vielleicht kann mir ja jemand einen Tip geben.

Auszug aus einem Programm:

EIN : IN BPORT
MOV C,A
RAL
JNC EIN

Vor dem RAL befehl steht in A 83h, dann steht in C 83h, nach dem RAL Befehl steht in A 06h. Da beim RAL Befehl der AKKU um 1 Bit nach links verschoben wird ( Bit7 wird in CARRY und CARRY Bit in Bit 2^0 geschiben)

1000 0011 = 83
0000 0111 = 07

Meine Frage:

Müßte danach nicht 07 in A stehen und nicht 06?
 
AW: Hilfe bei RAL Befehl Assambler ( DVT03N)

Hi Steffen,

das kommt ja immer auf den Inhalt des Carry-Flags vor der Verschiebung durch den RAL Befehl an.
Die Bits im AKKU rotieren um 1 Bit nach links, und das Carry-Bit wird in das LSB des AKKU geschrieben. Das vorherige msb des AKKU wird dann in das Carry-Bit geschrieben.
Wenn also vor der Operation das Carry-Bit 0 war, dann steht anschließend im AKKU 06h und im Carry-Bit 1.

Etwa so: (entspricht leider nicht genau Deinem Fall :oops: )


Gruß chris
 
AW: Hilfe bei RAL Befehl Assambler ( DVT03N)

Hey Chris,
recht vielen Dank!!!
Jetzt habe auch ich es verstanden und kann mit den Aufgaben weiter machen ohne im Hinterkopf immer das Problem zu haben, daß was nicht stimmt und ich es mir nicht erklären kann.

mfg steffen:D
 
AW: Hilfe bei RAL Befehl Assambler ( DVT03N)

Hey Chris,
recht vielen Dank für Deine Info! Ich glaube auch jetzt habe ich es verstanden und kann mit den Aufgaben weiter machen, ohne dises Problem im Hinterkopf.
mfg steffen
 
Top