Assemblerprogramm zur Umwandlung einer Zahl im Binärcode in eine gebrochene BCD-Zahl history menue Letztmalig dran rumgefummelt: 27.06.07 17:22:01

ist wahrscheinlich fehlerfrei und kann unbedenklich verwendet werden

ZIP-Archiv mit allen benötigten Assmbler-Routinen

die beliebte alphabetisch sortierte Schnell-Liste

die beliebte numerisch sortierte Schnell-Liste

Allgemeine FLAG-Wirkung

FLAG-Wirkung auf OP-Code-Gruppen

Beispiel 3: Umwandlung DUAL - BCD
Auch hier wird i. a. der ganze und der gebrochene Teil einer Zahl getrennt behandelt.
Umwandlung einer ganzen Dualzahl (16 Bit) in eine BCD-Zahl mit 5 Stellen.
Eingangsparameter: Dualzahlen in HL
Ausgangsparameter: BCD-(Dezimal-)Zahl in A und HL
Verfahren:
Schreibt man die Dualzahl mit den Ziffern b15 b14 b13 ... b1 b0 in der Form

D = b15 · 215 + b14 · 214 + b1 · 2 + b0 = (... ((0 · 2 + b15) · 2 + b14) · 2 + ... b1) · 2 + b0

so erkennt man folgenden Algorithmus:


Die Dualziffern müssen mit der höchstwertigen beginnen. Durch Dualwert + Dualwert (HL + HL) kommen die Dualziffern der Reihe nach in das CY-Flag, das nur noch zu 2D addiert zu werden braucht.

Marke Operation Operand Kommentar
  PN A3  
 
;DUAL - BCD
;UMWANDLUNG EINER DUALZAHL (INTEGER 16 BIT UNSIGNIERT)
;IN EINE BCD-ZAHL (5 STELLEN)
;DUALZAHL IN HL
;BCD-ZAHL IN AHL
       
DBI1: XOR A  
MA1: LD D,A  
  LD  B,16  
ZYK: ADD HL,HL  
  ADC A  
  DAA    
  LD E,A  
  LD A,D  
  ADC A  
  DAA    
  LD D,A  
  RL C  
  LD A,E  
  DJNZ ZYK-#  
  EX DE,HL  
  LD A,C  
  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