Forum: Mikrocontroller und Digitale Elektronik Diffenzierung der MUL Befehle des ATmega16


von Valentin (Gast)


Lesenswert?

Hallo allerseits

Also, dass man MUL-Befehle verwendet, um 8Bit-Zahlen miteinander zu 
multiplizieren, ist mir klar.

Aber was heißt signed und unsigned?
-> Wie unterscheiden sich die MUL-, MULS-Befehle? MULSU beinhaltet woll 
beides.

Und was heißt fractional?
-> Wie unterscheiden sich die MUL-,MULS-,MULSU-Befehle von den 
FMUL-,FMULS-,FMULSU-Befehlen???

Hoffe, mir kann jemand helfen.

MfG

von Andreas K. (a-k)


Lesenswert?

Valentin wrote:

> Aber was heißt signed und unsigned?

Signed byte: -128..127, unsigned byte: 0..255. Die Interpretation der 
beiden zu multiplizierenden 8-Bit Werte beeinflusst das obere Byte vom 
Ergebnis.

> -> Wie unterscheiden sich die MUL-, MULS-Befehle? MULSU beinhaltet woll
> beides.

Atmels Befehlsbeschreibung könnte da helfen.

> Und was heißt fractional?

Soll Festkommaarithmetik vereinfachen.

von Valentin (Gast)


Lesenswert?

Guten Morgen

Die Befehlsbeschreibung habe ich zwar gelesen, aber nicht schlauer 
geworden. Die ist ja auf Englisch!

Danke dir aber trotzdem für deine Hilfe.

von Andreas K. (a-k)


Lesenswert?

Valentin wrote:

> Die ist ja auf Englisch!

Quelle surprise!

Wie mindestens 99% aller hierzulande relevanten Literatur, was 
Zwergsteuerungen angeht. Bar eines eindeutigen Hinweises, ging ich 
einfach davon aus, dass ausreichende Englischkenntnisse vorhanden sind.

Um die Worte "signed" und "unsigned" ins Deutsche zu übersetzen tut es 
ein einfaches Wörterbuch. Dass das Eregbnis einer Multiplikation 8x8=>16 
Bit davon abhängt, ob die Operanden als -128..127 oder als 0..255 
interpretiert werden, lässt sich mit Taschenrechner oder auch ganz 
archaisch mit Papier und Bleistift nachvollziehen. Ich nehme mal als 
gegeben an, dass der Unterschied zwischen positiven und negativen Zahlen 
bekannt ist.

Und damit sind m.E. alle Voraussetzungen gegeben, um den entscheidenen 
Text der Befehlsbeschreibung zu MULSU interpretieren zu können, auch 
ohne ein einziges Wort Englisch zu können:
  R1:R0 <= Rd * Rr (signed <= signed * unsigned)

Wo also liegt genau das Problem?

von Dieter W. (dds5)


Lesenswert?

> ... Zwergsteuerungen ...

ROFL

von Valentin (Gast)


Lesenswert?

Das Wort "signed" habe ich übersetzt. Im Wörterbuch stand "gezeichnet". 
Und dann dachte ich, soll das signierte Wert gezeichnet und das 
unsignierte gemalt werden oder was???!!!

Aber jetzt im Ernst.

Dank deiner Hilfe konnte ich den Unterschied zwischen MUL und MULS 
nachvollziehen. Wenn man also -2 x -128 rechnen möchte, muss man mit 
MULS 254 x 128 rechnen. Wieso rechnet man nicht 2 x 128 mit MUL? Hast du 
vielleicht ein paar Beispiele für die MUL-Befehle?

Danke nochmals.
MfG

von Spess53 (Gast)


Lesenswert?

Hi

>Hast du vielleicht ein paar Beispiele für die MUL-Befehle?

Das kleine und grosse 1x1 ist voll davon.

Nimm einfach den Simulator vom AVR-Studio und teste die Befehle einfach 
mal durch. Für gebrochene Zahlen die die Funktionen 'Frac','Q7','Q15' 
(siehe AVR-Studio Hilfe) hilfreich.

MfG Spess

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.