[an error occurred while processing this directive]
А CodeVision оттранслировал это так : И код у него получился гораздо короче во втором случае. Вдумчиво пишущий на C поймет почему.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Пытливый 13 декабря 2002 г. 16:18
В ответ на: Ответ: Тут все очень просто отправлено Bill 13 декабря 2002 г. 16:02


; 161 while (1)
_0x2:
; 162 {
; 163 a = PINA;
IN R16,25
; 164 b = PINB;
IN R17,22
; 165 c = PINC;
IN R18,19
; 166 d = PIND;
IN R19,16
; 167
; 168 if ((a==b)&(a==c))
MOV R30,R17
MOV R26,R16
CALL __EQB12
PUSH R30
MOV R30,R18
MOV R26,R16
CALL __EQB12
POP R26
AND R30,R26
BREQ _0x5
; 169 {
; 170 PORTA.0 = 1;
SBI 0x1B,0
; 171 }
; 172
; 173 if((a==b)&&(a==c))
_0x5:
CP R17,R16
BRNE _0x7
CP R18,R16
BREQ _0x8
_0x7:
RJMP _0x6
_0x8:
; 174 {
; 175 PORTA.1 = 1;
SBI 0x1B,1
; 176 }
; 177 };
_0x6:
RJMP _0x2
; 178 }
_0x9:
RJMP _0x9

__EQB12:
CP R30,R26
LDI R30,1
BREQ __EQB12T
CLR R30
__EQB12T:
RET

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

Ответы



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

E-mail: info@telesys.ru