Wat doet de BEQ-instructie precies?

Ik heb het volgende codefragment dat ik probeer te begrijpen. Het is montage voor een MC68332 microcontroller.

LOOP
    some instructions
    some more instructions
BEQ LOOP

Ik heb BEQ gegoogled en ik heb ontdekt dat het vertakking op resultaat nul betekent, maar ik begrijp nog steeds niet echt wat het doet. Vergelijkt het het resultaat van de laatste instructie met 0, en als het 0 is, gaat het terug naar de LOOP-regel?


Antwoord 1, autoriteit 100%

In de Motorola 68k-familie staat het voor “branch if equal”, wat betekent “spring naar het opgegeven adres als de nulvlag is ingesteld”, bijvoorbeeld wanneer eerdere vergelijking is gelukt.

Maar 68332 lijkt anders te zijn. Op basis van de syntaxis van hoofdletters kan het een macro zijn rond een andere instructie die in wezen hetzelfde doet.

Assembly-programmeurs die code van andere systemen overdragen, kunnen soortgelijke macro’s gebruiken om het overdrachtsproces te vergemakkelijken.


Antwoord 2, autoriteit 12%

Het exacte antwoord hangt af van de microcontroller die u gebruikt. Als er geen operanden zijn, wordt over het algemeen verwacht dat BEQ vertakt als de accumulator 0 is. Dit is hoogstwaarschijnlijk op eenvoudige micro’s waar de accumulator het primaire register voor berekeningen is.

Welke microcontroller gebruikt u? Je zou een definitie voor de BEQ-instructie moeten kunnen vinden in de handleiding van die micro.

Other episodes