(AVR) nach CPI ist Z unbestimmt

Gast #768306
Lesenswert?

ist die Fehlermeldung die VMLAB bringt.
jezt habe ich das register vorher über ldi mit einer Null beschrieben, 
und siehe da, der Fehler taucht an dieser Stelle nicht mehr auf (leider 
dafür an einer anderen Stelle mit dem Befehl tst)
Selbst wenn ich das register nicht beschreibe, sollte ja eine Null drin 
stehen, komisch?!
Moderator Persönliche Seite #768438
Lesenswert?

6632 wrote:

> Ja. das ist was anderes. Der Compiler kann nicht nachvollziehen, dass im
> Z was sinnvolles drin sein soll.

Wenn du keine Ahnung davon hast, was da gezeigt wird, dann rede bitte
nicht drüber.

Kann eigentlich nur ein VMlab-Bug sein.  Schade nur, das Tool wird
nicht mehr gepflegt, da ihm der gewünschte kommerzielle Erfolg
versagt geblieben ist.  Ich kann's nur immer wieder schreiben: wer
daran interessiert ist, sollte einfach Enrique fragen, ob er es entweder
opensource machen möchte oder aber wenigstens jemandem den Sourcecode
unter NDA zur weiteren Pflege übergeben würde.
Gast #768579
Lesenswert?

Ich hab den Fehler gefunden, nachdem ich mich ein bisschen mit der 
Speicheranzeige befasst habe, ist mir aufgefallen, dass der X-Pointer 
ins Leere zeigt, ich muß ihn also vorher wieder auf das erste Zeichen 
zeigen lassen. Bin also noch fleißig am Knobeln.
Gast #768593
Lesenswert?

>jezt habe ich das register vorher über ldi mit einer Null beschrieben,

Bingo, "ldi" ändert das Z-Flag nämlich gerade NICHT!

clr temp    --> S = 0, N = 0, V = 0, Z = 1.

ldi temp, 0 --> alle Flags bleiben unverändert.
Gast #768614
Lesenswert?

ich denke im ersten Fall ist das richtig, was Peter erwähnt hat.
Im realen AVR, gibt es keinen unbestimmten Zustand, wenn es nicht 1 ist, 
ist es eben 0. Und 0 ist auch ein Ergebnis, oder?

Vielleicht war das undeutlich ausgedrückt, aber ich habe in ein 
beliebieges  Regster eine 0 geladen und dann einen Vergleich (cpi 
temp,0) gestartet. Damit wird das Z-Flag auf 0 gesetzt. Ich habe es 
natürlich nicht direkt auf Null gesetzt.
#768619
Lesenswert?

@ pacer (Gast)

>ich denke im ersten Fall ist das richtig, was Peter erwähnt hat.
>Im realen AVR, gibt es keinen unbestimmten Zustand,

Ja. Aber es gibt viele befehle, welche die Flags nicht verändern.

> wenn es nicht 1 ist,
>ist es eben 0. Und 0 ist auch ein Ergebnis, oder?

Sicher.

MFG
Falk
Gast #768631
Lesenswert?

>Im realen AVR, gibt es keinen unbestimmten Zustand, wenn es nicht 1 ist,
>ist es eben 0. Und 0 ist auch ein Ergebnis, oder?

Unbestimmte Flagzustände gibt es selbstverständlich nicht. Der 
Unterschied besteht nicht in "Flagzustand bestimmt - Flagzustand 
unbestimmt", sondern "Befehl beeinflusst Flags - Befehl lässt Flags 
unangetastet".

>aber ich habe in ein beliebieges  Regster eine 0 geladen und dann einen
>Vergleich (cpi temp,0) gestartet. Damit wird das Z-Flag auf 0 gesetzt.

So ist es. Äquivalent dazu wäre ein "tst temp".
Gast #768655
Lesenswert?

Danke für den Tipp.
Wegen meinem zweiten Problem muss ich erst mal ne Zwischenfrage stellen. 
Habe ich aber in einem neuen Post gemacht, weils thematisch hier nicht 
reinpasst.
Ist aber das Problem mit tst, so wie weiter oben beschrieben.

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