Hallo,
ich bin seit kurzem daran, mich mit der Assemblerprogrammierung eines
ATmega8A auseinanderzusetzen.
Ich habe mir zunächst zu Lernzwecken das AtmelStudio Version 6.1.2440 -
beta auf meinen Rechner (XP, SP3) installiert.
Nun scheitere ich bei einer "Pipifax-Simulation".
Ich habe folgenden Code:
.EQU NULL = 0
in r16,PINB ; Zustand des Eingabeports lesen
andi r16,0b00000001 ; oder $01 oder 0x01 oder 1 << PIND0
breq NULL
Als Simulator verwende ich den internen Simulator des AtmelStudios.
Ich starte mit F10 (debugging, stepover)
Der Simulator hält automatisch am ersten Befehl.
Ich setze jetzt im I/O-View sämtliche Bits an PINB.
Danach betätige ich erneut F10. Der Programmcounter zeigt nun 2 Zyklen
an.
Im Register r16 steht immer noch 0x00.
(Ich habe einen entsprechenden Screenshot mit angefügt und
dementsprechende Markierungen im Bild vorgenommen.)
Warum ist das so? Habe ich irgendwas nicht berücksichtigt?
Wenn ich mit F10 weiter steppe, gelange ich wieder an den Anfang des
Programms und der Wert von PINB wird auch beim weitersteppen richtig ins
Register r16 übertragen.
Mir tun sich hier ein paar ??? auf....
Danke für konstruktive Beiträge in voraus!
Gruß,
Bernd