werde aus dem tutorial nicht ganz schlau! wenn z.B.
1 | cpi 1, 1 |
2 | brne wahr |
3 | ........ |
in diesem fall wird nun zu wahr gesprungen oder?
1 | cpi 2,1 |
2 | brne wahr |
3 | ........ |
in diesem fall wird nun mit ..... weitergearbeitet oder?
|
Forum: Mikrocontroller und Digitale Elektronik Brne frage!!werde aus dem tutorial nicht ganz schlau! wenn z.B.
in diesem fall wird nun zu wahr gesprungen oder?
in diesem fall wird nun mit ..... weitergearbeitet oder? Leo schrieb: > werde aus dem tutorial nicht ganz schlau! > wenn z.B. > >
> > in diesem fall wird nun zu wahr gesprungen oder? Der Vergleich von 1 und 1 ergibt "wahr", stimmt's? Du sagst, daß er bei "nicht wahr" springen soll. "brne" heißt "branch if not equal" Also wird nicht gesprungen und mit der folgenden Instruktion weitergemacht. > > > >
Hier wird gesprungen, weil der Vergleich von 2 und i "not equal" ist. > > > in diesem fall wird nun mit ..... weitergearbeitet oder? Nein, sondern bei "wahr". "cpi 1, 2" wird vom Assembler gar nicht akzeptiert. Der erste Operand muss ein Register zwischen r16 und r31 sein. Danke für den Hinweis. Ich bin nicht so fit in Assembler, das hab ich nicht gemerkt. Mir gings auch nur um die Erklärung zum "brne". Die war aber hoffentlich richtig, oder? ;-))) Also, ein "cp" / "cpi" ist nichts anderes als eine Subtraktion, bei der das Ergebnis aber nicht abgespeichert wird. Die Flags (Zero, Vorzeichen, usw.) werden aber gesetzt oder gelöscht. Ein nachfolgender Befehl kann diese Flags nun auswerten, wie z.B. der "brne". Dieser springt zur angegebenen Marke, wenn das Zero-Flag nicht gesetzt ist. 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
Noch kein Account? Hier anmelden.
|
|