Forum: Mikrocontroller und Digitale Elektronik Subtraktion einer Konstanten


von Stephan (Gast)


Lesenswert?

Hallo zusammen,

ich möchte von einem 8-Bit Register (also Low und High-Register)
ein Konstante abziehen, die zwischen 8 und 32 (dec) ist.
Beim AVR gibts da ja zwei schöne Befehle, einmal:
subi LOW, 32
und der den Höheren Teil muss ich dann
sbc HIGH, register
und in register '0' laden, damit nur mein Carry abgezogen wird? Oder 
funktionert des auf eine andere Art und Weise.


Gruß
Stephan

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>ich möchte von einem 8-Bit Register (also Low und High-Register)

Das wären dann 16 Bit. Ansonsten hast Du Recht.

von crazy horse (Gast)


Lesenswert?

bei einem 8bit-Register gibt es zwar ein high- und ein low-nibble, aber 
das ist hier völlig irrelevant.
Es sei denn, du redest von einer 16bit-Zahl, die dann in 2 Registern 
untergebracht ist.

von Stephan (Gast)


Lesenswert?

Ja, eine 16-Bit Zahl in zwei 8-Bit Register.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Wenn Du mit Pointerregistern arbeitest (X, Y, Z), kannst Du

sbiw XH:XL, 32
...
sbiw YH:YL, 32
...
sbiw ZH:ZL, 32
...

benutzen.

von Stephan (Gast)


Lesenswert?

ah stimmt, des wäre natürlich au ne möglichkeit

von Rolf Magnus (Gast)


Lesenswert?

Geht auch mit r25:r24

von Matthias L. (Gast)


Lesenswert?

SBIW   rxl, value

rxl:  unteres der beiden register, nicht auf x,y,z begrenzt,

value: wert 0..63

von Falk B. (falk)


Lesenswert?


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
Noch kein Account? Hier anmelden.