Hallo Lalas,

in Assembler kann ich Dir das nur dann sinnvoll umsetzen, wenn Du mir die Wertebereiche (uint8_t oder int8_t?) Deiner Variablen nennst.
Aber Du schaffst es mit diesem Pseudo-Code (!) bestimmt selbst:
Code:
if (a>=5) goto leave;
while (b!=c) {
    Anweisungen;
}
leave:
   Mehr_anweisungen;
Unter der Bedingung "a<5 && b!=c" sitzt Du dann natürlich in einer Endlosschleife; ich nehme mal an, dass Du z.B. jedes Mal Werte aus SFRs o.ä. neu liest.

Gruß

Fred