Forum: Mikrocontroller und Digitale Elektronik Instruction BNE?


von Dennis Kleine-Beck (Gast)


Lesenswert?

Hallo,

ich benutze den ImageCraft ICC 7.x C Compiler. Target ist ein MEGA16.
Bei der genaueren Betrachtung einer Delay-Funktion (brauche genauere
Info über zu erwartende Laufzeit) ergibt sich folgendes Listing:

(0028)  // multi purpose delay
(0029)  void delay(int ticks)
(0030)   {
(0031)     while(ticks--);
_delay:
  ticks                --> R16
    004C 0118      MOVW  R2,R16  // 1 clock
    004D 5001      SUBI  R16,1  // 1 clock
    004E 4010      SBCI  R17,0  // 1 clock
    004F 2022      TST  R2  // 1 clock
    0050 F7D9      BNE  0x004C  //
    0051 2033      TST  R3  // 1 clock
    0052 F7C9      BNE  0x004C  //
    0053 9508      RET    // 4 clocks
(0032)   }


Leider kann ich in keiner Übersicht den Befehl "BNE" finden.
Lediglich "BRNE"...

Wer kann mir sagen, was es mit BNE auf sich hat, bzw. wieviele clocks
benötigt werden?

Danke!

Gruß,
Dennis

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Vergleiche die Opcodes, das wird nur eine andere Syntax sein.

von Thomas O. (Gast)


Lesenswert?

denke auch das die Syntax verschieden ist, bei ASM würde das movw
nämlich so aussehen movw r17:r16,r1:r0

von Dennis Kleine-Beck (Gast)


Lesenswert?

Yep, Rufus hatte Recht. Danke!

Dennis

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.