Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Beispielprogramm für Assemblereinsteiger Kategorie: Programmierung Assembler (von PeterS - 29.10.2010 9:16)
Als Antwort auf Beispielprogramm für Assemblereinsteiger von Manfred - 28.10.2010 15:20

> Hallo zusammen,
> nachdem ich von Ernst H die Taktmessung probiert habe, war ich eben so erstaunt wie er
> das soviele Takte für einfache Befehle gebraucht werden. Mit dieser hilfreiche Routine
> konnte ich aber einige Verbesserungen in der Quellcodegestaltung vornehmen.
> Ebenso habe ich mich an meine bescheidenen 8088/86 Kenntnisse erinnert und das
> Beispiel der Assemblereinbindung ausprobiert. Der 2. Teil dieses Beispiels funktioniert
> nicht einwandfrei. In der Beschreibung ist zu finden, dass einige Register nicht zu sichern sind.
> R28 wird in dem Beispiel benutzt obwohl es gesichert(PUSH R28) werden sollte.
> Wenn in dem Beispiel (proc2:) als erstes PUSH R28 und als letzte Zeile POP R28
> hinzugefügt wird gibt es keine nachfolgenden Störungen im Programm.
>
> Gibt es deutsche Befehlsbeschreibungen der MOVW, LDD usw. Ich tue mich da etwas schwer....
>
> GruÃ?, Manfred

Hallo Manfred,

ich habe es im Forum mehrfach geschrieben, und auch in der neuen Beta Doku ist es korrigiert:
Bitte nicht das Y-Register (R28,R29) benutzen! Das Y-Register wird im Interrupt gebraucht und
selbst wenn man es sichert, könnte die Interruptroutine schaden nehmen. Diese Erkenntnis habe
ich auch selbst später gewonnen, so da� es in der aktuellen Doku noch falsch steht.

Die Zählung der Takte von Ernst H ist für manche Befehle irgendwo fehlerhaft. Gerade der
"Var++" verbraucht weniger Takte als ein "Var= Var+1". Ich werde dazu noch was schreiben.

Gruss Peter


    Antwort schreiben


Antworten:

Re: Beispielprogramm für Assemblereinsteiger (von PeterS - 29.10.2010 9:19)