Diskussion:BEQ $hhll
Aus C64-Wiki
Zur Navigation springenZur Suche springenTitel[Quelltext bearbeiten]
Was bedeutet hhll? --Pohli 23:41, 22. Feb. 2009 (CET)
- Das $-Zeichen steht für Hexdezimal. hh steht für High-Byte. ll steht für Low-Byte.
- $hhll steht daher für eine 16-Bit Speicheradresse. (z.B. $c003 ).
- Siehe Beispielprogramm --Werner 00:31, 23. Feb. 2009 (CET)
- OK, hab ich mir schon gedacht. Habe trotzdem nachgefragt, denn nun verstehe ich nicht, wie das mit der relativen Adressierung zusammenpasst. Dort wird doch nur ein 8-Bit-Wert angegeben?! In der Tabelle steht auch Anzahl der Bytes: 2, also 1 Byte Mnemonic plus 1 Byte relative Adressierung, oder? --Pohli 13:42, 23. Feb. 2009 (CET)
- Das passt schon so. Hier muss zwischen Maschinencode und Assembler-Befehl differenziert werden.
- In Assembler wird das Sprungziel entweder absolut (z.B. BEQ $C000) oder als label (z.B. BEQ START) angegeben.
- Beim Assemblieren setzt der Assembler diesen Befehl in Maschinencode um ($F0 $nn). $F0 ist der Opcode, $nn das relative Sprungziel.
- Würde man z.B. nur BEQ $FC schreiben, glaubt der Assembler die Zeropage-Adresse $FC (absolut $00FC) sei als Sprungziel gemeint und gibt in der Regel eine Fehlermeldung aus. (z.B. Branch offset to large) --Werner 19:34, 24. Feb. 2009 (CET)
- Danke! Nun ist mir alles klar. :-) --Pohli 20:15, 24. Feb. 2009 (CET)