Hallo NG, gibt es eine Möglichkeit, das Carryflag mit nur einem Befehl in ein Register-Bit zu übertragen? (flag_c ist in meinem Fall 0x01) Momentan habe ich folgenden Code: lsrs r10, r10, #1 // shift right r10 (A) orrcs r9, r9, #flag_c // carry set andcc r9, r9, #0xff - flag_c // carry clear Danke im vorraus! Peter
mov r0, r0, rrx // oben reinschieben -oder- adc r0, r0, r0 // unten reinschieben -oder- mrs r0, cpsr
Peter Pippinger schrieb: > andcc r9, r9, #0xff - flag_c // carry clear Dabei gehen die Bits 8..31 über die Wupper. Besser: biccc r9, r9, #flag_c // carry clear Weniger als deine 2 Befehle geht m.W. nicht, wenn die übrigen Bits des Zielregisters unverändert bleiben sollen.
A. K. schrieb: > Dabei gehen die Bits 8..31 über die Wupper. Hallo. ja, das mit den restlichen Bits ist in diesem Fall Absicht, da ich in diesen Registern die Register des "alten 6502" abbilde. Die waren nur 8 Bit. Aber das ist dennoch eine sehr interessante Frage für mich als Anfänger. Könnte ich mit den restlichen Bits evtl. auch effizient arbeiten? Das wäre natürlich richtig fein, wenn ich 4 8Bit-Register in einem r-register des ARM unterbringen würde. Gibts da direkt Befehle, um darauf zuzugreifen? Oder werden das dann zwangsweise mehrere Befehle im Programm? MfG Peter
Peter Pippinger schrieb: > Das wäre natürlich richtig fein, wenn ich 4 8Bit-Register in einem > r-register des ARM unterbringen würde. Nein, das wäre ziemlicher Quatsch. > Gibts da direkt Befehle, um darauf zuzugreifen? Nicht im ARM7. > Oder werden das dann zwangsweise mehrere Befehle im Programm? In jedem Fall. Du musst die Inhalte zum Rechnen wieder rauspopeln. -- Marcus
Marcus Harnisch schrieb: > Peter Pippinger schrieb: >> Das wäre natürlich richtig fein, wenn ich 4 8Bit-Register in einem >> r-register des ARM unterbringen würde. > Nein, das wäre ziemlicher Quatsch. ja, wenns nicht geht ist´s natürlich Quatsch. Wusste nicht, ob es nicht sowas ähnliches wie bei x86 gibt: Register AL, AH, AX und EAX etc...; >> Oder werden das dann zwangsweise mehrere Befehle im Programm? >In jedem Fall. Du musst die Inhalte zum Rechnen wieder rauspopeln. Hab sie ja alle in eigenen Registern, weil ich mir das "rauspopeln" sparen möchte. Ich dachte nur, wenns da vielleicht Möglichkeiten gibt um Register zu "sparen" dann mach ich das.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.