Forum: Mikrocontroller und Digitale Elektronik 16 - Bit Register


von Izoards (Gast)


Lesenswert?

Es gibt ja 3 16- Bit Register,  (X=R27:R26, Y=R29:R28, Z=R31:R30) ich 
möchte nun ein solches Register mit einer 16- Bit Zahl laden und danach 
bearbeiten, d.h. ich muss vom 16- Bit Register verschiedene 
Subtraktionen durchführen!!!

Wie kann ich dieses 16- Bit Register laden, und bearbeiten??? Muss ich 
da immer das L_Byte und H_Byte einzeln laden???

IZOARD

von Steffen (Gast)


Lesenswert?

Das sind keine richtigen 16Bit-Register sondern wie von dir schon 
geschrieben zwei 8Bit-Register. Entweder du lädst die Werte in Xhigh, 
Xlow ein oder über R27,R28. Kommt das gleiche heraus. X,Y und Z sind 
mehr als Adresspointer zu verstehen.

von Izoards (Gast)


Lesenswert?

Ah Ok, aber wenn ich z.B. 1'000 von meiner zusammengestellten 16- Bit 
Zahl abziehen will, wie muss ich das denn machen??? muss ich die 1'000 
mit dem z.B. Z- Register darstellen und abziehen, oder muss ich das in 
mehreren Schritten tun, so dass ich z.B. 10 * 100 in einer Schlaufe 
abziehe????

thanks

izoard

von Jonas Diemer (Gast)


Lesenswert?

das geht wie folgt:

die zahl sollte im hex format vorliegen:

1000 = 0xE38.

deine register seien XH und XL.

du ziehst nun einfach (mit sub oder subi) 0x38 (der LOW teil von 1000) 
von XL ab. Hierbei wird das Carry flag gesetzt, sollte Xl unterlaufen 
(d.h. XL<0x38).

nun ziehst du von XH 0x0E ab. Hierfür verwendest du SBC oder SBCI. Diese 
funktion zieht dann zusätzlich das carry-flag von XH ab (also XH = XH-1, 
wenn das C-Flag gesetzt ist).

schon biste fertig.

von Izoards (Gast)


Lesenswert?

Vielen Dank.
Jetzt habe ich noch eine Frage, ich muss eine Abfrage realisieren, bei 
der ich springe, wenn das X- Register grösser oder gleich 1000 ist, kann 
man das mit cpi Befehlen realisieren??? Ich habe es schon versucht, doch 
es wird ziemlich unübersichtlich, gibt es da einen besseren Weg???

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.