Assemblerprogramm zur Umwandlung einer gebrochenen BCD-Zahl in Binärcode |
![]() |
![]() |
Letztmalig dran rumgefummelt: 27.06.07 17:21:53 |
ist wahrscheinlich fehlerfrei und kann unbedenklich verwendet werden |
|
Beispiel 2:
Umwandlung einer gebrochenen BCD-Zahl (2 Stellen ohne Vorzeichen) in eine
Dualzahl mit 8 Stellen.
Eingangsparameter: BCD-Zahl in Register
A
Ausgangsparameter: Dual-Zahl in Register
A
Verfahren:
Durch Multiplikation mit 2 erscheinen
die Dualziffern der Reihe nach vor dem Komma. Für 8 Dualstellen ergibt sich
folgender Algorithmus:
:
Durch (BCD-Zahl · 2 = BCD-Zahl + BCD-Zahl) wird die Bit-Stelle vor dem Komma in das CY-Bit gebracht. Diese Stellen brauchen nur noch in ein freies Register (z. B. Register C) der Reihe nach von rechts nach links eingeschoben werden.
Marke | Operation | Operand | Kommentar |
PN | A2 | ||
;UMWANDLUNG EINER BCD-ZAHL /Z/ < 1 (2 STELLEN UNSIGNIERT) | |||
;IN EINE DUALZAHL (8 BIT) | |||
DBI1: | LD | B,8 | ;ZAEHLER = 8 |
MA1: | ADD | A | ;WERT * 2 |
DAA | |||
RL | C | ||
DJNZ | MA1-# | ;RUECKSPRUNG, SOLANGE ZAEHLER > 0 | |
LD | A,C | ;RESULTAT NACH A | |
RET | |||
END | |||
FUER DIE KONVERTIERUNG MIT RUNDUNG FOLGT NACH DEM BEFEHL... DJNZ MA1-# | |||
ADD | A | ;ZUSAETZLICHE BCD-ADD ZUM EVENTUELLEN | |
DAA | ;AUFRUNDEN | ||
LD | A,C | ;RESULTAT NACH A | |
ADC | 00 | ;AUFRUNDEN | |
RET | |||
END |
Beispiel für eine kleine Anweisungstabelle in vollständiger Assembler-Codierung
![]() zur Hauptseite |
© Samuel-von-Pufendorf-Gymnasium Flöha | © Frank Rost im Juni 2007 |
... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-) „Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“ Diddi Hallervorden, dt. Komiker und Kabarettist |