[an error occurred while processing this directive] [an error occurred while processing this directive]
Тест HI-TECH PIC-C18 и MICROCHIP MPLAB-C18. Первые впечатления.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено abivan 30 августа 2001 г. 12:11

Решил я потестить компиляторы от HI-Tech и Microchip.
И вот что обнаружилось MCC18 из простенькой подпрограммы сотворил такое...

Может я чего не понимаю, но создается впечатление, что Microchip
заинтересован чтоб кода было побольше. А значит и процессора продовались подороже,
с большей памятью и большей частотой.


void main(void);

void programm(char c);

void main(){
char i;
i=0;
i++;
programm(i);
i++;
}


MCC18
00E2 CFD9 main MOVFF
00E4 FFE6 (nop) 0xFD9,0xFE6
00E6 CFE1 MOVFF
00E8 FFD9 (nop) 0xFE1,0xFD9
00EA 0E01 MOVLW 0x1
00EC 26E1 ADDWF 0xFE1
00EE 6ADF CLRF 0xFDF
00F0 2ADF INCF 0xFDF
00F2 50DF MOVF 0xFDF,W
00F4 6EE6 MOVWF 0xFE6
00F6 EC84 CALL

HT-PIC18
001C 0100 main MOVLB 0x0
001E 6BFF CLRF 0xFF,banked
0020 2BFF INCF 0xFF,banked
0022 51FF MOVF 0xFF,W,banked
0024 D804 RCALL programm


void programm(char c){
char a;
a=c;
c++;
}

MCC18
0108 CFD9 progra MOVFF
010A FFE6 (nop) 0xFD9,0xFE6
010C CFE1 MOVFF
010E FFD9 (nop) 0xFE1,0xFD9
0110 0E01 MOVLW 0x1
0112 26E1 ADDWF 0xFE1
0114 0EFE MOVLW 0xFE
0116 CFDB MOVFF
0118 F000 (nop) 0xFDB,0x0
011A C000 MOVFF
011C FFDF (nop) 0x0,0xFDF
011E 0EFE MOVLW 0xFE
0120 2ADB INCF 0xFDB
0122 0E02 #retur MOVLW 0x2
0124 5EE1 SUBWF 0xFE1
0126 CFE7 MOVFF
0128 FFD9 (nop) 0xFE7,0xFD9
012A 0012 RETURN

HT-PIC18
002E 6ED9 progra MOVWF 0xFD9
0030 2AE8 INCF 0xFE8
0032 0012 RETURN

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

Ответы



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

E-mail: info@telesys.ru