Na lass mal genau wie du hab ich auch damit angefangen ohne solche Umherrechnen nur irgendwann gehts halt nicht mehr weiter. Also keine Angst dieser Lernzustand ist ganz normal
Das sind nur die Namen der Register und fügst diese in deiner Hauptdatei zum Anfang ein oder "schaltest" es in der Mathe-Datei einfach frei.
Also HEX_Dez_Wandlung brauchst du trotzdem. denn wie willst du das A als DEZ darstellen bzw es sind ja 2 ASCII-Zeichen §31 und $30 nur das wären doch schon 2byte für zwei einezelne Ziffern die als Zehn interpretiert werden.
Einfacher ist es doch 1byte mit HEX 10 zu beschreiben und in der Ausgabe zum LCD
1. Kopie von $10 anlegen
2. swapst du das Highbyte auf lowbyte und addierst $30 dazu
3. $31 als Datensatz zum LCD schicken, 1 wird angezeigt
4. Kopie Highbyte ausmaskieren und wieder mit $30 addieren
5. $30 als Datensatz zum LCD schicken, 0 wird angezeigt
Hinweis: Die Mathe.asm bringst das Ergebnis steht in den Registern richtig drin, je nach Ansicht in Dezimal oder HEX. Ich entnnehme deiner Aussage das du es auf Dezimal eingestellt hast im Simulator.
Es gibt jetzt verschiedene Ansätze wie du diese Ergebnis jetzt wann wandelst.
1. Du nimmst die Register wie sie sind und wandlest erst bei der Ausgabe in ASCII-Zahlen was aber die Ausgabe komplizierter macht.
oder
2. Ergebniss berechnen lassen dann von HEX in Dezimal wandeln und im RAM ablegen ACHTUNG je nach ANSICHT im Simulator: HEX-Ansicht dann sind es PSEUDO-HEXEN da du es schon in DEZIMAL betrachtest oder in Dezimal dann sind die Werte als DEZ interpretiert falsch, Ausgabe der DEZ-Zahlen da in der mit der Addition des Wertes von $30
Noch mal einfach.
Du brauchst eine reine:
TEXTAUSGABE
ZAHLENAUSGABE
Hab mal zwei Bilder angehängt. $1312 * $0100 = $131200 da die ALU nur in Binär/(HEX) rechnen kann funktioniert die Registerübergreifende Darstellung in DEZIMAL nicht da die Zahlen von UNS falsch interpretiert werden
Damit du es richtig interpretierst müsstest du
19*256 + 18 = 4882 und 1*256 +0 = 4882 * 256 = 1249792
Das Ergbeniss richtig zu interpretiern
19*65536 + 18*256 + 0*256 = 1249792
Wie gesagt das ist ein Frage deiner Darstellungsform im Simulator am besten auf HEX lassen wenn es Rgeisterübergreifend arbeitet.
Lesezeichen