У меня следующий код сборки:
__asm__ __volatile__ (
"1: subi %0, 1" "\n\t"
"brne 1b"
: "=d" (__count)
: "M" (__count));
, что приводит к следующему выходу компилятора
ce: 81 50 subi r24, 0x01 ; 1
d0: f1 f7 brne .-4 ; 0xce <main>
d2: 80 e0 ldi r24, 0x00 ; 0
d4: 90 e0 ldi r25, 0x00 ; 0
Как мне добиться следующего:
ce: 81 50 subi r16, 0x01 ; 1
d0: f1 f7 brne .-4 ; 0xce <main>
d2: 80 e0 ldi r16, 0x00 ; 0
Можно ли даже сказать компилятору использовать r16 вместо r24: r25? Таким образом, я могу уменьшить количество циклов на 1, которое используется строкой ldi r25,0x00.
Спасибо
Jack