goto in C

The goto statement allows transfer of control to any labelled point with a function.

For example this code to print the first 10 integers:

    int i, sum;
    sum = 1;
    for (i = 0; i <= 10; i++)
       printf("%d\n", i);
    exit(0);
can be written as:
    int i, sum;
    sum = 1;
    i = 0;
loop:
    i++;
    printf("%d\n", i);
    if (10 - i != 0) goto loop;
end:
    exit(0);
can be translated to
; i in r16
    LDI    r16, 0      ; i = 0
loop:
    LDI    r24, 1      ; printf("%d\n", i);
    MOV    r26, r16    
    LDI    r31, 0x70  
    LDI    r30, 0x00  
    ICALL
    LDI    r17, 1
    ADD    r16, r17    ; i++
    LDI    r17, 10     ; if (10 - i != 0) goto loop;
    SUB    r17, r16    
    BRBC   1, loop
    LDI    r24, 0      ; exit
    LDI    r31, 0x70  
    LDI    r30, 0x00  
    ICALL

Index