MezData-Logo

Verzweigungen in Assembler Lösungen

Lösungen

Erstellen Sie Assemblerprogramme, testen und dokumentieren Sie sie mit PAP für folgende Probleme:

  1. b=3; if (a==2) b=7;
  2. if (a==2) b=7; else b=3;
  3. if (a==1 && b==1) c=1; else c=0;

4. if ((a&3)==1 && a / 4==1) b=1; else b=0;

.def a = R16 ;R16 als Variable a
.def b = R17 ;R17 als Variable b
  ldi a, 6
  ldi b, 2
start:
  cpi a, 5
  breq lol
  ldi b,0
  rjmp weiter
lol:
  ldi b,1
weiter:

5. if (a%4==0 && a>20) a=99;

.def a = R16 ;R16 als Variable a
start:
  ldi a, 16
  SBRC a, 0
  rjmp ende
  SBRC a, 1
  rjmp ende ; erste teilbedingung erfüllt
  cpi a,20
  BRSH ende
  ldi a, 99
ende:

6. for (i=0; i<10; i++) a=i;

.def a = R16 ;R16 als Variable a
start:
  ldi a, 0
schleife:
  inc a
  cpi a, 10
  BRLO schleife
  rjmp start