Thumb / ARM ISA - Verständnisfrage

Gast #5731468
Hi zusammen,

ich habe vor einiger Zeit angefangen mit AVRs zu spielen und beginne nun 
mich mit ARM zu beschäftigen. Dazu lese ich gerade The Definitive Guide 
to ARM. Ich habe eine Verständnisfrage zur ISA über die ich vielleicht 
auch bei AVR gestolpert wäre wenn ich so tief eingestiegen wäre.
 Es geht um die MOV bzw. MOVS Instruktionen. Ich lese, dass der 
Unterschied darin besteht, das MOVS gleichzeitig die Flags im APSR 
aktualisiert also (N, Z, C) im Wesentlichen. MOV schreibt doch nur den 
Wert eines Register oder ein Literal in einen anderen Register. Wie kann 
dabei eine Änderung im PSR auftreten?

Versteht mich nicht falsch, ich will nicht in erster Linie in ASM 
schreiben. Die ersten Programmierversuche erfolgen in C, aber ich habe 
an dieser Stelle das Gefühl, etwas grundsätzlich nich richtig Verstanden 
zu haben.

Ich hoffe ihr könnt mir hier etwas auf die Sprünge helfen.

Viele Grüße
Hannes
Eigentlich sollte fast jeder Befehl (gerade auch load und store) diese 
Flags setzen. Ich fände das total praktisch, weil man auf die Art ein 
if() halb geschenkt bekommt. Andererseits würde Multi-Word-Arithmetik 
etwas mühsamer, man kann nicht alles auf einmal haben.
Bauform B. schrieb:
> Eigentlich sollte fast jeder Befehl (gerade auch load und store) diese
> Flags setzen. Ich fände das total praktisch, weil man auf die Art ein
> if() halb geschenkt bekommt. Andererseits würde Multi-Word-Arithmetik
> etwas mühsamer, man kann nicht alles auf einmal haben.

Auf nicht spekulativen superskalaren Cores wie dem Cortex M7 wird es zur 
Performance-Bremse. Bei solchen Cores ist es sehr nützlich, wenn man 
zwischen einen Befehl und einem dessen Result nutzenden Befehl 
mindestens einen anderen Befehl legen kann, der damit nichts zu tun hat. 
Bei den normalen Registern ist das einfach, bei den Flags hingegen nur, 
wenn nicht alle Befehle sie setzen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.