Hallo,
erst mal was du vielleicht nicht hören willst:
vor 2 Jahr hatte ich auch mal probiert vol aufl Assembler umzusteigen. Der Nachteil von Assembler ist, dass man relativ langsam ist, und sich bei Registern immer definitiv festlegt, und nicht mal schnell von R16 auf R17 wechseln kann. Ich habe mich deshalb entschieden auf C umzusteigen, da das wesentlich besser optimiert als es ein einziger Mensch kann, schneller ist und trotzdem dank inline-Assembler vollen Handlungsspielraum gibt. Und genau diesen würde ich dir nahe legen. Zum einen kann man die Routinen von C und zum anderen die Freiheit von Assembler gewiesen, wobei dir C immer unter die Arme greift (bessergesagt: greifen kann), z.b. bei der Registerwahl. Wichtig dabei ist es, immer das Listing vom Compiler durchzuschauen.
Aber dazu muss man Assembler erstmal richtig können!
Mal ein Bsp. für die And
ldi r17,0x3E
ldi r18,0x46
and r17,r18
und in r17 ist das Ergebnis.
Einen guten Tipp um erstmal alle Befehle zu lernen, ist sich die Liste der Befehle sozusagen als Spickzettel auszudrucken. Da ist auch immer eine kleine Beschreibung dabei. Was gut hilfst Assembler zu lernen ist mal ein Listing von C durchzuschauen.
Wichtige Befehle:
ldi,cp,cpi,mov,die ganzen branch-brefehle, sbi, cbi, and, or, andi, in, out, sbrc, sbrs, sbic, sbis, rjmp, jmp
Am Besten lernt man durch eine Aufgabenstellung:
Mein Vorschlag wäre mal ein 1Bit Und(or(xor))-Gatter zu bauen.
Lesezeichen