Der Martin: Assembler: 32Bit Division mit Ergebnis > 16Bit?

Beitrag lesen

Hallo,

ich lerne gerade Assembler mit den Programmen TASM (Turbo-Assembler von Boorlean), einem 8086-Assembler und TD (Turbo Debugger).

willkommen in der Welt spannender Handarbeiten!

Jetzt möchte ich Zahlen miteinander Dividieren. [...]

Wenn du erstmal beim traditionellen 8086-Registersatz bleiben willst (16bit) und trotzdem einen Dividend breiter als 32bit, einen Divisor breiter als 16bit, oder einen möglichen Quotienten breiter als 16bit verarbeiten willst, wirst du wohl den Algorithmus von Hand programmieren müssen. Und dann kannst du beliebig große Werte realisieren.
Wie du übrigens völlig richtig erkannt hast, kann der Quotient bei einer ganzzahligen Division ebensogroß werden wie der Dividend. Die im x86-Befehlssatz implementierte div-Instruktion hat in diesem Punkt also eine Einschränkung.

Die Division komplett in Software zu schreiben, ist übrigens gar nicht so schwer (nicht mal in ssembler), wenn man das Prinzip der "schriftlichen Division" wirklich verstanden hat.

So long,
 Martin

--
Der Gast geht solange zum Tresen, bis er bricht.