вопрос по компилятору picc18, очень надо, плз(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Andrey_ 04 июня 2004 г. 11:23

есть такой исходный код:
static bank3 unsigned int xword @ 0x9A;
static bank3 bit a1 @ ((unsigned)&xword*8)+0;
static bank3 bit a2 @ ((unsigned)&xword*8)+1;
static bank3 bit a3 @ ((unsigned)&xword*8)+2;

group_ti = 0;
if (a1)
bitset(group_ti, 2);
if (a2)
bitset(group_ti, 1);
if (a3)
bitset(group_ti, 0);

a1, a2, a3 биты с
при компиляции получается следующее

Line AddreЯ Opcode Label DisaЯembly

1230 099A 6A0C CLRF 0,
1231 099C 0100 MOVLB 0
1232 099E A19A BTFSS 0x9a, 0, 0x1
1233 09A0 D001 BRA 0x9a4
1234 09A2 D001 BRA 0x9a6
1235 09A4 D001 BRA 0x9a8
1236 09A6 840C BSF 0x2, 0,
1237 09A8 0100 MOVLB 0
1238 09AA A39A BTFSS 0x9a, 0x1, 0x1
1239 09AC D001 BRA 0x9b0
1240 09Ж D001 BRA 0x9b2
1241 09B0 D001 BRA 0x9b4
1242 09B2 820C BSF 0x1, 0,
1243 09B4 0100 MOVLB 0

как делать что бы получилось
BTFSC 0x9a, 0, 0x1
BSF 0x2, 0
BTFSS 0x9a, 0x1, 0x1

или это свойства компилятора и это не обойдешь?
уровень оптимизации не помогает


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru