hallo, mich interresiert es wie der program counter bei attiny15l mit einer adresse gefullt wird, bzw. der program counter ist 9 bit breit und die data bus ist 8 bit breit, also zmb bei rjmp wie kommt die neue adrese in den PC? wird es zwei mal dur die data bus geschickt (einmal 8 bits, und einmal 1 bit), oder irgednwie anders? RJM ist doch PC=PC+k+1 wo k auf 12 bits ist also von -2048 bis 2048 (was ja reciht um das ganze progam flash zu adressieren) wird das PC+k+1 in der ALU augefuhrt oder nicht? die alu kann odch nur mit 8 bits arbeiten...? vielen dank im vorraus
Nunja, intern (im Bitmuster des Codes) sieht das etwas anders aus als im ASM-Quelltext. Du schreibst rjmp label1 Im Code wird aber nicht die Adresse von "label1" gespeichert, sondern die Differenz zwischen der aktuellen Adresse und Label1. Und da der Tiny15 nur 1kB Flash hat, dieser auch noch Word-adressiert wird (512 Words a 2 Bytes), reichen 9 Bit im PC aus, jede Adresse zu speichern. Die Differenz kann also nie größer als 511 (9 Bit) werden. Die volle 12-Bit-Distanz von k wird erst bei AVRs mit 8kB Flash ausgenutzt. ...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.