mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SSAT Befehl im ARM Befehlssatz


Autor: Aspire (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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/

Autor: Aspire (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.d...

> 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.