| 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 |