Multiplikation von 2 ganzen Dualzahlen ohne Vorzeichen - das Ergebnis ist 32 Bit lang history menue Letztmalig dran rumgefummelt: 22.06.07 08:00:52

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 7: Multiplikation von 2 ganzen Dualzahlen (16 Bit) ohne Vorzeichen. Das Ergebnis ist 32 Bit lang.
Eingangsparameter: Multiplikand in DE Multiplikator in BC
Ausgangsparameter: Produkt in HL und BC

Verfahren:

Schreiben wir den Multiplikator (MR) in dualer Darstellung

MR = b15 · 215 + b14 · 214 + ... b1 · 21 + b0, so erkennen wir aus

MD · MR = MD(b15 · 215 + b14 · 214 + ... b1 · 21 + b0)
        = 215 b15 MD + 214 b14 MD +... 21 b1 MD + b0 MD

dass wir zur Produktbildung MD mit einer Verschiebung 2i zum Teilprodukt addieren müssen, wenn die Stelle bi = 1 ist. Statt einer Verschiebung von MD nach links (× 2i) können wir auch das Produkt nach rechts verschieben. Die Multiplikation läuft damit nach Schema (Bild unten) ab.

Funktionsprinzip der Multiplikation

Funktionsprinzip der Multiplikation

Da sich die Abfrage der letzten Stelle des Multiplikators b0 leichter über das CY-Bit realisieren lässt, kann man vor Beginn des Verfahrens den Multiplikator so um eine Stelle nach rechts schieben, dass die letzte Stelle ins CY-Bit kommt. Dadurch entsteht der als Flussbild (Bild unten) dargestellte Ablauf.
Zur Multiplikation wird der Multiplikator eine Stelle nach rechts geschoben. Dabei gelangt das niederwertigste Bit in das C-Bit. Ist dieses Bit 1, wird der Inhalt von DE zu HL addiert, ist es 0, erfolgt keine Addition von DE zu HL. Anschließend wird der Inhalt von HL mit BC gemeinsam um eine Stelle nach rechts verschoben. Dabei kommt das nächste Bit des Multiplikators ins CY-Bit. Dieser Vorgang wird insgesamt 16 mal wiederholt, da der Multiplikator 16 Stellen umfasst. Weil am Anfang einmal BC nach rechts verschoben werden muss, um die 1. Stelle ins CY-Bit zu bringen, wird der Zähler auf 17 gestellt.

Marke Operation Operand Kommentar
  PN B1  
;BASISPROGRAMM EUER MULTIPLIKATION
;16 X 16 BIT-MULTIPLIKATION, UNSIGNIERT, ERGEBNIS 32 BIT
;MULTIPLIKAND IN DE
;MULTIPLIKATOR IN BC
       
MUL2: LD HL,0  
  LD A,17 ;ZAEHLER
K3: RR B
  RR C  
  DEC A  
  RZ    
  JRNC K7-#  
  ADD HL,DE  
K7: RR H  
  RR L  
  JR K3-#  
  END    

Beispiel für eine kleine Anweisungstabelle in vollständiger Assembler-Codierung

Funktionsprinzip der Multiplikation

Funktionsprinzip der Multiplikation



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