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) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum