SED
Aus C64-Wiki
Zur Navigation springenZur Suche springenMnemonic: | SED | ||
Opcode: | $F8 | ||
Anzahl der Bytes: | 1 | ||
Befehlsgruppe: | Flaggen-Befehl | ||
Adressierung: | implizit | ||
Beeinflusste Flags im Statusregister: | |||
Decimal-Flag | |||
Taktzyklen: | 2 | ||
1 | PC | R | Lese Befehl, inkrementiere PC |
2 | PC | R | Lese nächstes Befehlsbyte (und verwerfe es), führe Operation durch |
Der Assembler-Befehl SED setzt das Decimal-Flag. Damit werden forthin Additionen und Subtraktonen im Akkumulator in BCD-Kodierung (Binary Coded Decimal) statt binär vorgenommen.
Funktionsprinzip
Bedeutung der Buchstaben im Befehl
SED | SEt Decimal flag |
Setze Dezimal-Flagge |
Beispiel
Konvertiert einen 8-Bit-Wert in ein 4-stelligen BCD-Wert (in 2 Bytes)[1]:
BINBCD: SED ; Decimal-Mode aktivieren LDA #0 ; Ergebnis auf 0 initialisieren STA BCD+0 STA BCD+1 LDX #8 ; Anzahl der Binärwert-Bits CNVBIT: ASL BIN ; Ein Binär-Bit ins Carry LDA BCD+0 ; und in BCD-Wert übernehmen ADC BCD+0 ; ebenso durch Verdopplung STA BCD+0 ; mittels Addition mit LDA BCD+1 ; sich selbst in 4 BCD-Ziffern ADC BCD+1 STA BCD+1 DEX ; nächstes Binärwert-Bit BNE CNVBIT CLD ; wieder Binary-Mode
Vergleichbare BASIC-Anweisung
Keine vergleichbare BASIC-Befehlsfolge vorhanden.
Beispielprogramme
Quellen