Ответ: Здесь ассемблерный выход компилятора
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Bill 15 октября 2003 г. 10:48
В ответ на: Ответ: Здесь исходный текст отправлено Bill 15 октября 2003 г. 10:38


NAME test1

RTMODEL "__64bit_doubles", "disabled"
RTMODEL "__cpu", "0"
RTMODEL "__cpu_name", "AT90S2313"
RTMODEL "__enhanced_core", "disabled"
RTMODEL "__has_elpm", "false"
RTMODEL "__memory_model", "1"
RTMODEL "__rt_version", "2.30"

RSEG CSTACK:DATA:NOROOT(0)
RSEG RSTACK:DATA:NOROOT(0)


PUBWEAK _A_DDRB
PUBWEAK _A_PORTB
PUBWEAK __?EEARL
PUBWEAK __?EECR
PUBWEAK __?EEDR
PUBLIC main
FUNCTION main,0a03H
; 1 #include

ASEGN ABSOLUTE:DATA:NOROOT,037H
; union volatile __io _A_DDRB;
_A_DDRB:
DS 1

ASEGN ABSOLUTE:DATA:NOROOT,038H
; union volatile __io _A_PORTB;
_A_PORTB:
DS 1
; 2
; 3 //================================
; 4 //----------------------------------
; 5

RSEG CODE:CODE:NOROOT(1)
; 6 void main (void)
; 7 {
; 8 char vert;
; 9 unsigned char count1, count2;
; 10
; 11 DDRB = 0xff;
; __nearfunc void main();
main:
LDI R16,255
OUT 0x17,R16
; 12 vert = 0xFE;
??main_0:
LDI R18,254
; 13 for(;;) {
; 14 PORTB = vert;
??main_1:
OUT 0x18,R18
; 15 count1 = 0xFF;
LDI R17,255
; 16 count2 = 32;
LDI R16,32
; 17 do {
; 18 while (--count1);
??main_2:
DEC R17
BRNE ??main_2
; 19 }
; 20 while (--count2);
DEC R16
BRNE ??main_2
; 21 if (!(vert <<= 1))
LSL R18
BRNE ??main_1
; 22 vert = 0xFE;
RJMP ??main_0
; 23 }//for(;;)
; 24 }

ASEGN ABSOLUTE:DATA:NOROOT,01cH
__?EECR:

ASEGN ABSOLUTE:DATA:NOROOT,01dH
__?EEDR:

ASEGN ABSOLUTE:DATA:NOROOT,01eH
__?EEARL:

END
;
; 2 bytes in segment ABSOLUTE
; 26 bytes in segment CODE
;
; 26 bytes of CODE memory
; 0 bytes of DATA memory (+ 2 bytes shared)
;
;Errors: none
;Warnings: none


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

Ответы



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

E-mail: info@telesys.ru