hm.....das ist halt immer das problem mit assembler
->anderer prozessor->anderes programm für die selbe aufgabe (andre syntax+befehle)
das nächste problem ist dann natürlich das display ?!! (ansteuerung...)
das prinzip is dafür aber einfach:
1. initialisierung des displays
2. register xyz = 0
3. ausgabe xyz als zeichen (z.B. 'A')
4. ausgabe xyz als bcd -> am besten bintobcd-funktion schreiben
-> errechnet bcd-wert und schreibt diesen in register abc
5. register xyz incrementieren (...um 1 erhöhen)
6. zeitschleife (1e sec warten) -> funktio- sleep_1 aufrufen
7. xyz < 256 ? wenn ja -> goto 3
ende des programms
sleep_1:
eine zeitschleife wird wie folgt realisiert:
1. register auf 0 setzen
2. register=register+1
3. wenn register < "zielwert" goto 2
fkt. beenden
um jetzt die zeit (in unserem fall eine sekunde) einzustellen musst du wissen
wie lange der prozessor benötigt um den befehl 2. und 3. auszuführen.
ein bsp: 2:1us und 3:2us (bei ausgeführtem sprung)
-> "zielwert" = 1/(0.000001+0.000002) = 333333
das heißt, dass die schleife ("zeitschleife") 333333 mal durchlaufen werden muss bis eine sekunde verstrichen ist! das wird aber nur funktionieren, wenn Kyle uVision die simulation mit der echten prozessorgeschwindigkeit durchführt (weiß ich nicht, vielleicht kann man das aktivieren ....)
bcd-funktion: dafür gibt es einen speziellen algorithmus den ich aber leider nicht auswendig kenne.....müsste aber mit google schnell zu finden sein!
so...das ganze ist etwas abstrakt...ich weiß ja leider nicht was für ein vorwissen du hast, aber sonst kannst du ja nachfragen
mfg marX