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:19)
Als Antwort auf Re: Beispielprogramm für Assemblereinsteiger von PeterS - 29.10.2010 9:16

> > 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.

Ooops, hatte ich gerade falsch im Gedächtnis: Ernst hatte ja "Var++: 260 Takte", und
"Var= Var+1" 291 Takte" gemessen. Die Werte sind aber trotzdem zu hoch.

>
> Gruss Peter


    Antwort schreiben


Antworten: