ich habe folgenden Code geschrieben:
Code: Alles auswählen
#include <stdio.h>
int main(void)
{
int c, h, atom;
char text[]="**********************************";
printf("\nWieviel C-Atome?");
scanf("%i",&c);
h=c*2+2;
atom = c + h;
printf("\nDas Atom bestitz %i C-Atome und %i H-Atome, insgesamt %i Atome.\n", c, h, atom);
printf("\nSummenformel: C%iH%i\n\n",c,h);
switch (c)
{
case 1: printf("\nMethan");break;
case 2: printf("\nEthan");break;
case 3: printf("\nPropan");break;
case 4: printf("\nButan");break;
case 5: printf("\nPentan");break;
case 6: printf("\nHexan");break;
case 7: printf("\nHeptan");break;
case 8: printf("\nOktan");break;
case 9: printf("\nNonan");break;
case 10: printf("\nDecan");break;
}
printf("\n\n%s\n\n",text);
return 0;
}
Beim AVR Assembler ist dies so in der Art möglich:
Code: Alles auswählen
.include "m8def.inc"
ldi R17, 40 ; Anzahl der Werte
ldi R16, 0xFF
out DDRB, R16 ; Port B: Ausgang
ldi ZL, LOW(daten*2) ; Low-Byte der Adresse in Z-Pointer
ldi ZH, HIGH(daten*2) ; High-Byte der Adresse in Z-Pointer
loop:
lpm R0, Z+ ; durch Z-Pointer adressiertes Byte
; in R0 laden und Z erhöhen
out PORTB, R0 ; an PORTB ausgeben
dec R17 ; Zähler -1
brne loop
ende:
rjmp ende ; Endlosschleife
daten:
.db 0b11111111
.db 0b10101010
.db 0b01010101
...