16 - Bit Register

Gast #2959
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
Gast #2960
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.
Gast #2961
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
Gast #2962
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.
Gast #2963
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???

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.