000
19.06.2006, 23:30 Uhr
Olli
|
Hallo,
waerend ich so das UDOS Mikroprozessor Software Buch abtippe bin ich gerade auf der U880-ASM Seite wo ja im Grunde PLZ/ASM beschrieben wird.
Gleich vorneweg - das ist das 1. Mal das ich mich mit Assembler auseinandersetze, also bitte ich um etwas Ruecksicht
Bei der Erklaerung von Rekursiven Makros steht als Beispielcode:
Quellcode: | MACR1: MACRO #A #B SYMB: DEFL #B MACR2 '#A' ;Rekursiv-Makro "MACR2" ENDM MACR2: MACRO #A COND SYMB.GT.0 SYMB: DEFL SYMB-1 MACR2 '#A-' #A ENDC ENDM Makroaufruf: MACR1 RLA 3 SYMB: DEFL 3 MACR2 'RLA' COND SYMB.GT.0 SYMB: DEFL SYMB-1 MACR2 'RLA' COND SYMB.GT.0 SYMB: DEFL SYMB-1 MACR2 'RLA' COND SYMB.GT.0 SYMB: DEFL SYMB-1 MACR2 'RLA' COND SYMB.GT.0 SYMB: DEFL SYMB-1 MACR2 'RLA' COND SYMB.GT.0 RLA ENDC RLA ENDC RLA ENDC RLA ENDC
|
Soweit so gut. Ich schreib jetzt erstmal was ich bis datu verstanden habe. Macro 1 wird definiert mit 2 Uebergabeparametern A und B. SYMB wird der Wert aus B zugeiwsen. Danach wird Macro 2 mit dem 1. Parameter von Macro 1 aufgerugen. Macro2 ruft jetzt so lange den 1. Parameter von Macro 1 auf, bis SYMB kleiner/gleich 0 ist. Im Anwendungsbeispiel wird als 3 mal RLA aufgerufen, weil ich Macro 1 RLA als 1. Parameter angegeben habe, und 3 als 2.
Meine Frage nun - RLA (bitverschiebung - rotate left accumulator) wird hier ohne Parameter aufgerufen - wird dann autom. 1 als Argument um wieviel Bits der Zwischenspeicher (accumulator) verschoben wird angenommen?
Kann mir einer bestaetigen das ich das richtig verstanden habe, oder mir nur Mist zusammmengefiebert habe? Wie gesagt, das 1. Mal was Assembler aehnliches, also schoen fuer Assembler-Neulinge erklaeren -- P8000 adventures: http://pofo.de/blog/?/categories/1-P8000 |