Multiplizieren/Dividieren asm

Gast #650450
Lesenswert?
• ▲
▼
Dividieren:
http://www.atmel.com/dyn/resources/prod_documents/doc0936.pdf

Multiplizieren:
http://www.atmel.com/dyn/resources/prod_documents/doc1631.pdf


Um zu Dividieren muss ich einfach das programmieren:

1. Clear remainder and carry.
2. Load Loop counter with 17.
3. Shift left dividend into carry
4. Decrement Loop counter.
5. If Loop counter = 0, return.
6. Shift left carry (from dividend/result) into remainder
7. Subtract divisor from remainder.
8. If result negative, add back divisor, clear carry and go to Step 3.
9. Set carry and go to Step 3.

Und um zu Multiplizieren muss ich nur laut Seite5 (Zeichnung) vorgehen.

Habe ich das richtig verstanden?

mfg der anfänger
Gast #650746
Lesenswert?
• ▲
▼
Ich stehe zur zeit leider auf der Leitung.

Ich möchte zum Beispiel  5 / 1024 dividieren.

Wenn ich das mache kommt heraus:
Result: Low Byte- 000
        HighByte -000

Remainder: Low Byte -  005
           Hgih Byte - 000

?!?

mfg der Anfänger
Persönliche Seite #650748
Lesenswert?
• ▲
▼
Anfänger wrote:
> Ich stehe zur zeit leider auf der Leitung.
>
> Ich möchte zum Beispiel  5 / 1024 dividieren.
>
> Wenn ich das mache kommt heraus:
> Result: Low Byte- 000
>         HighByte -000
>
> Remainder: Low Byte -  005
>            Hgih Byte - 000
>
> ?!?
>
> mfg der Anfänger

Und wo ist das Problem? Bzw. Was stimmt daran nicht?

Du kannst ja (wie schon mit dem Festkommaarithmetik-Link) angedeutet 
5000/1024 teilen. Das Ergebnis ist dann nur um 3 Stellen nach links 
verschoben (Im Dezimalsystem natürlich).
#650786
Lesenswert?
• ▲
▼
Na ja, wie ich schon sagte, kann Integerarithmetik nicht mit 
Nachkommastellen umgehen.

Wenn du sie dafür benutzen willst, muß du die Kommaschiebereien selbst 
machen und die Eingangsoperanden/Ergebnis so geschickt 
zurechtmultiplizieren/dividieren, daß die gewünschte 
Nachkommagenauigkeit dabei herauskommt.

Die int-Artihmetik schmeißt alles weg, was kleiner als 1 ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren