[an error occurred while processing this directive]
|
только что посмотрел асм после иаровского компилера, примерные рассуждения компилятора приведены в {}
E-mail:
info@telesys.ru
// 28 tmpUCSR0B = UCSR0B;
LDI R26, LOW(_A_tmpUCSR0B){Попробуем-ка сохранить это через X}
LDI R27, (_A_tmpUCSR0B) >> 8
IN R16, 0x0A
ST X, R16 {Хм... Получилось!}
// 29 UCSR0B = (1<
OUT 0x0A, R16
// 30
// 31 tmpUCSR1B = UCSR1B;
LDS R16, 154
MOVW R31:R30, R27:R26 {Но через Z всетаки надёжней!}
STD Z+1, R16
// 32 UCSR1B = (1<
STS 154, R16
// 33
// 34 tmpTIMSK = TIMSK;
IN R16, 0x37
STD Z+2, R16
// 35 TIMSK = (1<
OUT 0x37, R16
// 36
// 37 asm("sei");
sei
Ответы