Gast
#768299
hallo, ich wollte mal fragen woher das kommt, dass nach einem Vergleich mittles cpi das z-Flag unbestimmt ist. Eigentlich sollte das doch nicht möglich sein?! Gruß, JK
|
Anzeige
|
(AVR) nach CPI ist Z unbestimmt
Gast
#768299
hallo, ich wollte mal fragen woher das kommt, dass nach einem Vergleich mittles cpi das z-Flag unbestimmt ist. Eigentlich sollte das doch nicht möglich sein?! Gruß, JK Unmöglich. pacer wrote: > ich wollte mal fragen woher das kommt, dass nach einem Vergleich mittles > cpi das z-Flag unbestimmt ist. Ne, CPI funktioniert natürlich korrekt und auch ein BREQ danach. Peter
Gast
#768306
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?! pacer wrote: > ist die Fehlermeldung die VMLAB bringt. Mag ja sein, das hat aber nichts damit zu tun, was der AVR im wirklichen Leben macht. Peter
Gast
#768310
hier mal ein Bild mit dem selben Fehler nur nach tst...
Gast
#768332
Ja. das ist was anderes. Der Compiler kann nicht nachvollziehen, dass im Z was sinnvolles drin sein soll. 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
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
>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
#768597
>Bingo, "ldi" ändert das Z-Flag nämlich gerade NICHT! Zusatz: Die Aussage bezieht sich auf einen realen AVR.
Gast
#768614
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. @ 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
#768626
Nein. Das Z ist nur Null wenn der Vergleich auch mit diesem Register geschah. Irgendein Register laden und mit "temp" vergleichen ist unbestimmt. ldi temp,0 cpi temp,0 Z -> 0
Gast
#768630
genau, das habe ich gemacht, passt ja jetzt. Muss ich nur noch das zweite Problem klären...
Gast
#768631
>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
#768633
>zweite Problem
Worum gehts?
Gast
#768643
Wenn man nur das Z auf Null haben will geht das einfacher : BCLR Z
Gast
#768655
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.
Gast
#768701
>Wenn man nur das Z auf Null haben will geht das einfacher : >BCLR Z CLZ ;-) Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|