Ответ: А вот теперь аналог ассемблера на Си. Размер программы 52 байта.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Bill 15 октября 2003 г. 10:34
В ответ на: готово отправлено deb24 15 октября 2003 г. 09:06


6 void main (void)
7 {
8 char vert;
9 unsigned char count1, count2;
10
11 DDRB = 0xff;
\ __nearfunc void main();
\ main:
\ 00000000 EF0F LDI R16,255
\ 00000002 BB07 OUT 0x17,R16
12 vert = 0xFE;
\ ??main_0:
\ 00000004 EF2E LDI R18,254
13 for(;;) {
14 PORTB = vert;
\ ??main_1:
\ 00000006 BB28 OUT 0x18,R18
15 count1 = 0xFF;
\ 00000008 EF1F LDI R17,255
16 count2 = 32;
\ 0000000A E200 LDI R16,32
17 do {
18 while (--count1);
\ ??main_2:
\ 0000000C 951A DEC R17
\ 0000000E F7F1 BRNE ??main_2
19 }
20 while (--count2);
\ 00000010 950A DEC R16
\ 00000012 F7E1 BRNE ??main_2
21 if (!(vert <<= 1))
\ 00000014 0F22 LSL R18
\ 00000016 F7B9 BRNE ??main_1
22 vert = 0xFE;
\ 00000018 CFF5 RJMP ??main_0
23 }//for(;;)
24 }

Maximum stack usage in bytes:

Function CSTACK RSTACK
-------- ------ ------
main 0 0


2 bytes in segment ABSOLUTE
26 bytes in segment CODE


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

Ответы



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

E-mail: info@telesys.ru