Frage von maxschoen, 13

Was für eine Konsequenz hat es für ein Programm und den Compiler wenn der Program Counter um 1 erhöht wird?

Antwort
von PWolff, 6

Wie meinst du das?

Was hat der Compiler damit zu tun? Soll die Erhöhung des Program Counters durch den Quelltext erfolgen? - Das wäre nichts weiter als ein Leerbefehl ("NOP" in vielen Assemblersprachen).

Wenn es während des Programmablaufs ungeplant vorkommt, führt das in aller Regel zu praktisch nicht auffindbaren Fehlern. Reproduzierbar sind diese Fehler nur, wenn auch die spontane Erhöhung des PC reproduzierbar ist.

Bei Prozessoren, bei denen Befehle z. T. aus mehreren Worten bestehen, kommt es dann auch vor, dass ungültige Pseudo-Opcodes angetroffen werden, deren Verhalten nicht definiert ist und die den Prozessor möglicherweise komplett anhalten oder andere Daten zufällig ändern, z. B. Flags oder Stackpointer.

Antwort
von DrakonBukana, 13

Die Berechnung könnte falsch sein und es kann eventuell gar nichts funktionieren.

Je nachdem wie die anderen Sachen gesetzt und vom Counter abhängig sind.

Kommentar von maxschoen ,

Welche Berechnungen könnten falsch sein?

Hat das nichts mit dem Zugriff bzw. der Speichereinteilung im Hauptspeicher zu tun?

Kommentar von DrakonBukana ,

Vielleicht reden wir einander vorbei, aber der Counter zählt doch z.b. die runden die ein Programm von oben nach unten abläuft. Erhöhst Du das, fängt es ja nun bei 1 an und nicht bei 0. Ist der Counter z.b. in einem Array eingebaut, funktioniert es vielleicht nicht, weil z.b. eine ganze Reihe übersprungen wird. Du müsstest wohl einiges anderes auch ändern.

Keine passende Antwort gefunden?

Fragen Sie die Community