Hallo! Ich habe häufiger das Problem dass wenn ich Adressen berechnen will (Addieren oder Subtrahieren) ein anderes Startergebnis herauskommt. Ich vermute dass es an der Adresse "Null" liegt die ja im normalen Rechensystem nicht so in Erscheinung tritt. Beispiel: Startadresse wäre 00h, durch INC gehts 20 Mal weiter bis 13h. Wenn ich aber 20d (14h) subtrahiere, komme ich auf -1 ! Gibt es da einen Trick bzw. Methode doch auf das richtige Ergebnis zu kommen bei Adressberechnungen ? Ich ahne nichts Gutes, denn es gibt bei vielen Überläufen einen Haufen Nullen :-)
Gast
#4958776
H-G S. schrieb: > Startadresse wäre 00h, durch INC gehts 20 Mal weiter bis 13h. Wie geht das?
Klaus Dieter schrieb: > H-G S. schrieb: >> Startadresse wäre 00h, durch INC gehts 20 Mal weiter bis 13h. > > Wie geht das? Ahhh..gerade beim ersten Kaffee heute ist mir eingefallen dass man da nur 19 Mal INCen tut :-) Aber das Problem mit der Null-Adresse kam öfter vor, weshalb ich beim Hex-Berechnen Probleme habe... Ich möchte auf einem 4x20-LCD Speicherinhalte anzeigen und am Ende müsste ich 20 abziehen um wieder die Startadresse zu erhalten. Aber wie es scheint habe ich einmal zuviel geINCt in Gedanken.
Gast
#4958783
Ich hex, binär, oder dezimal...
Gast
#4958786
Merk dir die Anfangsadresse. Nicht hin und her rechnen.
DirkB schrieb: > Merk dir die Anfangsadresse. > Nicht hin und her rechnen. Dann brauche ich eine extra Variable im (internen 8051) Speicher - ich wollte mir die einsparen und einfach zurückrechnen. So wie es aussieht werde ich beim scrollen durch den Speicher-Monitor eh eine Zeile (5 Adressen) abziehen oder addieren müssen immer. Oder ich scrolle gleich eine ganze Seite ... mal schauen. Oder ich speichere die aktuell niedrigste Adresse in freien Registern.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.