SSAT Befehl im ARM Befehlssatz

Gast #1117415
Lesenswert?

Zur Zeit bin ich dabei mich mit dem THUMB2 Befehlen des Cortex M3 
auseinander zu setzten un will jeden Befehl einmal testen. Bin jetzt auf 
den Befehl SSAT gestoßen. Die Syntax ist: SSAT<c> <Rd>, <#imm>, 
<Rn>{,<shift>} und die Definition lautet. Signed saturate.
Ich kann damit leider nix anfangen. Kann mir jemand erklären was genau 
der Befehl macht?

Zum testen hab ich mal

LDR  R4,=0xFFFF
SSAT  R5,#0xF,R4

debugged aber aus dem Ergebniss kann ich keine Schlüsse ziehen. Das 
Zielregister enthält anschließend 0x00003FFF.

MFG
Persönliche Seite #1117483
Lesenswert?

Aspire wrote:
> Zur Zeit bin ich dabei mich mit dem THUMB2 Befehlen des Cortex M3
> auseinander zu setzten un will jeden Befehl einmal testen. Bin jetzt auf
> den Befehl SSAT gestoßen. Die Syntax ist: SSAT<c> <Rd>, <#imm>,
> <Rn>{,<shift>} und die Definition lautet. Signed saturate.
> Ich kann damit leider nix anfangen. Kann mir jemand erklären was genau
> der Befehl macht?
>
> Zum testen hab ich mal
>
> LDR  R4,=0xFFFF
> SSAT  R5,#0xF,R4
>
> debugged aber aus dem Ergebniss kann ich keine Schlüsse ziehen. Das
> Zielregister enthält anschließend 0x00003FFF.

Der Befehl nimmt die vorzeichenbehaftete Zahl, die sich aus dem 
(verschobenen) Inhalt von <Rn> ergibt und sättigt sie an der <#imm>'ten 
Bitposition.

Woher weißt Du denn von dem Befehl? Steht da sonst nichts weiter?

Gruß
Marcus
http://www.doulos.com/arm/
Gast #1117518
Lesenswert?

Die IAR Entwicklungsumbebung liefert einen ganzen Satz an pdf Dateien. 
Unter anderem eine CortexM3_TRM, die das programmieren mit Assembler 
etwas erläutert. Unter anderem wird hier auch der unterstützte THUMB2 
Befehlssatz aufgeführt. Allerdings gibt es hier nur eine 
Kurzbeschreibung der Befehle, keine genaue Erläuterung.

Danke deine Antwort hat mir für´s erste weitergeholfen.Ok die Syntax ist 
mir jetzt klar. Mir ist dieses "sättigen" allerdings nicht ganz klar.

Also im oben genannten Beispiel würde das dann bedeuten 0xFFFF wird an 
der 16ten Stelle gesättigt. Aber 0x3FFF würde doch nur 14 `1` 
entsprechen?
Hängt das mit dem signed zusammen?
Persönliche Seite #1117549
Lesenswert?

Aspire wrote:
> Allerdings gibt es hier nur eine Kurzbeschreibung der Befehle, keine
> genaue Erläuterung.

Das Cortex-M3 Application Level Architecture Reference Manual gibt Dir 
mehr Details als Du Dir wünschen würdest. Für den Hausgebrauch tut's 
aber auch

http://infocenter.arm.com/help/topic/com.arm.doc.dui0379a/Cjafgdih.html

> Aber 0x3FFF würde doch nur 14 `1` entsprechen?
> Hängt das mit dem signed zusammen?

Ja. Schlag mal die Details in der Doku nach.

Gruß
Marcus
http://www.doulos.com/arm/

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