ARM7 Assembler: Carry-Flag mit weniger als 3 Befehlen "übertragen"

OP #2008308
Lesenswert?
• ▲
▼
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
OP #2008429
Lesenswert?
• ▲
▼
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
Persönliche Seite #2009163
Lesenswert?
• ▲
▼
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
Gast #2009353
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren