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)