Цитата
"Кажется" - это немного неправильный подход, вам так не кажется?
вы правы

подход по методу пальцем в небо.
Компилятор gcc вот он на генерировал :
Код
71 .L6:
72 0050 80309FE5 ldr r3, .L8+4 @ tmp155,
73 0054 002093E5 ldr r2, [r3, #0] @ tt.4, tt
74 0058 2637A0E3 mov r3, #9961472 @ tmp156,
75 005c 963C83E2 add r3, r3, #38400 @ tmp156, tmp156,
76 0060 7F3083E2 add r3, r3, #127 @ tmp156, tmp156,
77 0064 030052E1 cmp r2, r3 @ tt.4, tmp156
78 0068 0500008A bhi .L2 @,
79 006c 64309FE5 ldr r3, .L8+4 @ tmp157,
80 0070 003093E5 ldr r3, [r3, #0] @ tt.5, tt
81 0074 012083E2 add r2, r3, #1 @ tt.6, tt.5,
82 0078 58309FE5 ldr r3, .L8+4 @ tmp158,
83 007c 002083E5 str r2, [r3, #0] @ tt.6, tt
84 0080 020000EA b .L3 @
85 .L2:
86 0084 4C309FE5 ldr r3, .L8+4 @ tmp159,
87 0088 0020A0E3 mov r2, #0 @ tmp160,
88 008c 002083E5 str r2, [r3, #0] @ tmp160, tt
89 .L3:
90 0090 40309FE5 ldr r3, .L8+4 @ tmp161,
91 0094 002093E5 ldr r2, [r3, #0] @ tt.7, tt
92 0098 1337A0E3 mov r3, #4980736 @ tmp162,
93 009c 4B3C83E2 add r3, r3, #19200 @ tmp162, tmp162,
94 00a0 403083E2 add r3, r3, #64 @ tmp162, tmp162,
95 00a4 030052E1 cmp r2, r3 @ tt.7, tmp162
96 00a8 0400009A bls .L4 @,
97 00ac 20309FE5 ldr r3, .L8 @ tmp163,
98 00b0 003093E5 ldr r3, [r3, #0] @ pPIO.8, pPIO
99 00b4 0222A0E3 mov r2, #536870912 @ tmp164,
100 00b8 302083E5 str r2, [r3, #48] @ tmp164, <variable>.PIO_SODR
101 00bc E3FFFFEA b .L6 @
Включил оптимизацию -О6 совсем другое дело:
Код
69 .L6:
70 004c 020053E1 cmp r3, r2 @ prephitmp.17, tmp152
71 0050 013083E2 add r3, r3, #1 @ prephitmp.17, prephitmp.17,
72 0054 0030A083 movhi r3, #0 @ prephitmp.17,
73 0058 0200008A bhi .L3 @,
74 005c 0C0053E1 cmp r3, ip @ prephitmp.17, tmp153
75 0060 30008185 strhi r0, [r1, #48] @ tmp154, <variable>.PIO_SODR
76 0064 F8FFFF8A bhi .L6 @,
77 .L3:
78 0068 340081E5 str r0, [r1, #52] @ tmp154, <variable>.PIO_CODR
79 006c F6FFFFEA b .L6 @