Forum: Mikrocontroller und Digitale Elektronik Unterschied BNE und BNZ


von Andreas Jodlbauer (Gast)


Lesenswert?

Hallo was ist der Unterschied zwischen den Assemblerbefehlen BNE (branch 
not equal) und BNZ (branch not Zero)?
Ich beziehe mich nicht so sehr auf einen speziellen uC / uP wie z.B 6809 
oder 8051 sondern allgemein. Liebe Grüße

von Andre (Gast)


Lesenswert?

Andreas Jodlbauer schrieb:
> branch not equal

a != b

> branch not Zero

a != 0

Spart ein Register

von (prx) A. K. (prx)


Lesenswert?

Andreas Jodlbauer schrieb:
> Ich beziehe mich nicht so sehr auf einen speziellen uC / uP wie z.B 6809
> oder 8051 sondern allgemein.

Die Frage lässt sich nur im Rahmen einer Architektur beantworten. Ohne 
Flags ist die Antwort anders als mit.

> Hallo was ist der Unterschied zwischen den Assemblerbefehlen BNE (branch
> not equal) und BNZ (branch not Zero)?

Soweit sie sich auf eine Architektur mit Statusregister und Z Flag 
beziehen: keiner. Reine Konvention.

Ohne Flag kann sich BNZ auf den Inhalt eines Registers/Akkus beziehen. 
BNE ergibt dann keinen Sinn.

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Andreas Jodlbauer schrieb:
> Hallo was ist der Unterschied zwischen den Assemblerbefehlen BNE (branch
> not equal) und BNZ

Keiner, sie erzeugen denselben Maschinenbefehl.

Beide springen wenn das ZERO Flag 0 ist.

Der eine wird nach compare-Instruktionen geschrieben, der andere nach 
Lade- bzw. arithmetisch-logischen Operationen, damit dem Leser klarer 
wird, wofür das ZERO Flag dann steht.

von QRT! (Gast)


Lesenswert?

Andreas Jodlbauer schrieb:
> Hallo was ist der Unterschied zwischen den Assemblerbefehlen BNE (branch
> not equal) und BNZ (branch not Zero)?
> Ich beziehe mich nicht so sehr auf einen speziellen uC / uP wie z.B 6809
> oder 8051 sondern allgemein. Liebe Grüße

RTFM:
https://www.microchip.com/webdoc/avrassembler/avrassembler.wb_BRNE.html
http://www.xgc-tek.com/manuals/mil-std-1750a/x3206.html

von Wolfgang (Gast)


Lesenswert?

Andreas Jodlbauer schrieb:
> Ich beziehe mich nicht so sehr auf einen speziellen uC / uP ...

Das solltest du tun. Im Referenz zu genau dem Prozessor steht drin, wie 
die Mnemonics den Befehlen zugeordnet sind, welche Register an der 
Befehlsausführung beteiligt sind und welche Flags dabei mitspielen.
Das kann jeder uC/uP-Hersteller machen wie er möchte und sich sogar 
seine eigenen Mnemonics ausdenken.

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.