Hallo, ich schaue mir gerade ein wenig übersetzten C-Code mit dem Disassembler an. Teilweise sind da schon sehr kuriose Konstrukte bei, die mir als alten ASM Programmierer die Haare zu Berge stehen lassen, aber das ist hier eher nebensächlich :-) Dort taucht immer wieder die Assembler Instruktion "LAT" (Load And Toggle) auf, die aber in der Doku von Atmel nicht erwähnt ist. Was macht diese eigentlich? Ciao... Markus
interessant... zeig doch mal ein stück assemblerlisting, vielleicht läßt sich ja rausbekommen was die instruction macht und wozu man sie evtl. nutzen kann. für was für einen controller hast du den code compiliert?
Hi Wurde mich auch mal interessieren. Ist da der OpCode mit dabei? MfG Spess
Hi >Siehe hier: >http://www.avrfreaks.net/index.php?name=PNphpBB2&f... OK. Hat sich damit erledigt. MfG Spess
AvrAssembler und AvrDisassembler kennen schon die : Load and Toggle LAT Load and Clear LAC Load and Set LAS Exchange XCH Die gehören eigentlich nicht zum atmega, also wird ein bug sein.
Hi >AvrAssembler und AvrDisassembler kennen schon die : >... >Die gehören eigentlich nicht zum atmega, also wird ein bug sein. Nobody is perfect. MfG Spess
...naja, aber was machen sie denn nun im Code? Also irgendeinen Effekt müssen sie doch haben? Ziel ist übrigens ein ATmega644. Einfach nachzuvollziehen: #include <stdlib.h> int main(void) { int i; i=rand(); } In der rand() Funktion werden andere Funktionen aus der C-Bibliothek aufgerufen, in einer kommt dann z.B. sowas vor: +00000143: 941A DEC R1 Decrement +00000144: F769 BRNE PC-0x12 Branch if not equal +00000145: 9560 LAT R22 Load and Toggle +00000146: 9570 LAT R23 Load and Toggle +00000147: 9580 LAT R24 Load and Toggle +00000148: 9590 LAT R25 Load and Toggle +00000149: 019B MOVW R18,R22 Copy register pair +0000014A: 01AC MOVW R20,R24 Copy register pair +0000014B: 01BD MOVW R22,R26 Copy register pair +0000014C: 01CF MOVW R24,R30 Copy register pair +0000014D: 9508 RET Subroutine return Ciao... Markus
Ah ok, ja hatte das COM in dem Kontext nicht verstanden, da ich noch nicht alle Befehle des AVRs im Kopf habe und den COM habe ich bis jetzt noch nicht gebraucht. Danke... Markus
Dear Customer, The mnemonics output by the disassembler however doesn't seem to co-relate with those in the datasheet or instruction set. This may have been done to add readability and comment about the operation of each instruction. We would confirm this from the AVR Studio development team and get back to you.
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.