Einchipmikrorechner und Signalprozessoren/Zusammenfassung

Aus II-Wiki
Wechseln zu: Navigation, Suche

Zusammenspiel von Vergleichen und Bedingten Sprüngen

Eigenschaften EµR DSP
Vergleichsarten:

eine

 CMP A, B
  • Ein Vergleich reicht, da er mehrere Flags setzt
  • Wahl des Condition Codes wird erst in der Bedingung festgelegt

mehrere

 CMPEQ A, B, Ziel
 CMPLT A, B, Ziel
 CMPGT A, B, Ziel
  • Da nur ein "Flag" (bit im Zielregister) beim Vergleichen gesetzt wird müssen mehrere Befehle unterschidliche Vergleiche realisieren
  • Wahl des "Condition Codes" wird schon beim Vergleichen festgelegt
Vergleichsresultate:

sind im PSW kodiert:

  • Z Zero
  • V Overflow
  • C Carry
  • N Negativ

sind im Zielregister gespeichert

  • 0 wenn false
  • 1 wenn true
Sprungarten:

mehrere (durch Condtion Codes)

 JMP cc_EQ, Label
 JMP cc_SLT, Label
 JMP cc_SGT, Label
  • Erst hier muss sich für eine Bedingung entschieden werden

eine

 [A] B Label
Bedingungen:

Durch Condition Codes:

  • Wahrheitswert der Bedingung wird aus Kombination des Z-, V-, C- und N-Flags gebildet
  • Wahrheitswert der Bedingung ist der Inhalt des Bedingungsregister
  • true falls Bedingungsregister <> 0
  • false falls Bedingungsregister = 0
Beispiele:
 CMP R0, R1
 JMP cc_EQ, m0
 CMP R0, R1
 JMP cc_SLT, m0
 CMP R0, R1
 JMP cc_SGT, m0
      CMPEQ A1, A2, B0
 [B0] B m0
      CMPLT A1, A2, B0
 [B0] B m0
      CMPGT A1, A2, B0
 [B0] B m0

Zusammenspiel von Vergleichen und Bedingten Sprüngen beim EµR

Warning: flat edge between adjacent nodes one of which has a record shape - replace records with HTML-like labels
Edge Hint1 -> PSW
Error: lost Hint1 PSW edge
Error: lost Hint2 cc edge

Zusammenspiel von Vergleichen und Bedingten Sprüngen beim DSP

Warning: flat edge between adjacent nodes one of which has a record shape - replace records with HTML-like labels
Edge Hint1 -> B
Error: lost Hint1 B edge