Diffenzierung der MUL Befehle des ATmega16

Gast #805813
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
#805815
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.
#806056
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?
Gast #806209
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
Gast #806432
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

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