Assemblerprogramm zur Umwandlung einer ganzen BCD-Zahl in Binärcode |
![]() |
![]() |
Letztmalig dran rumgefummelt: 27.06.07 17:21:44 |
|
|||
Beispiel 1:
Umwandlung einer ganzen BCD-Zahl
(4 Stellen ohne Vorzeichen) in eine Dualzahl
Eingangsparameter: BCD-Zahl in HL
Ausgangsparameter: DUAL-Zahl in HL
Verfahren:
Schreibt man die Dezimalzahl mit den
Ziffern d3 d2 d1 d0 in der Form
b = d3 · 103 + d2 · 102 + d1 · 10 + d0 = (((0 · 10 + d3) · 10 + d2) · 10 + d1) · 10 + d0
so erkennt man folgenden Algorithmus:
Dabei ist mit der höchstwertigen Ziffer (d3) zu beginnen. Vor dem Abarbeiten des Algorithmus sind die Ziffern zu trennen.
Marke | Operation | Operand | Kommentar |
PN | A1 | ||
;UMWANDLUNG BCD-DUAL | |||
;UMWANDLUNG EINER INTEGER BCD-ZAHL (4 STELLEN UNSIGNIERT) | |||
;IN EINE DUALZAHL (16 BIT) | |||
DBI2: | PUSH | HL | |
LD | HL,0 | ||
ADD | HL,SP | ||
XOR | A | ;ABLEGEN DER ZIFFERN D3, D2, D1, D0 | |
RRD | ;IN DEN STACK | ||
PUSH | AF | ;ZIFFER Dl IN DEN STACK | |
INC | HL | ||
RRD | |||
PUSH | AF | ;ZIFFER Dl IN DEN STACK | |
RRD | |||
PUSH | AF | ;ZIFFER,D2 IN DEN STACK | |
RRD | |||
PUSH | AF | ;ZIFFER D3 AUF DEN STACK | |
;ALGORITHMUS | |||
LD | HL,0 | ;B=0 | |
LD | B,4 | ;ZAEHLER = 4 | |
ZYK: | LD | E,L | |
LD | D,H | ||
ADD | HL,HL | ;MULTIPLIKATION MIT 10 | |
ADD | HL,HL | ||
ADD | HL,DE | ||
ADD | HL,HL | ||
POP | DE | ;ZIFFER HOLEN | |
LD | E,L | ||
LD | D,0 | ||
ADD | HL,DE | ;ZIFFER ADDIEREN | |
DJNZ | ZYK-# | ||
POP | DE | ||
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 |