Tamanho do Código CCS x MikroPascal

Comprei recentemente um compilador MikroPascal da http://www.mikroe.com e fui comparar os código gerado por ele e pelo CCS v4.013, notei que o tamanho do código gerado no MikroPascal é bem menor do que no CCS testei também na versão CCS 3.249 e o resultado foi quase o mesmo, a pergunta é:
O Mikropascal é mais otimizado que o CCS ?
program TESTE;
var
k,l: integer;
hj: longint;
begin
k:=198778;
l:=197578;
hj:=(k*l)/2;
while true do // An infinite loop
begin
// wait for one second
end;
end.
******************* CÓDIGO GERADO **************************
:100000000428FF3FFF3FFF3F7A3003138312A00015
:100010000830A100CA30A2000330A3002230A4009F
:100020000F30A5007630A6009230A70016281728BA
:02400E00FFFFB2
:00000001FF
*************************************************************
*********************** CCS FONTE ***************************
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=8000000)
void main() {
signed long int k=198778,l=197578;
int32 hj=0;
hj = (k * l)/2;
SET_TRIS_D(0xFF);
output_D(0xFF);
while (true)
{
}
}
****************** CÓDIGO GERADO NO CCS ********************
:1000000000308A005B2800001030AD00F701FA01D3
:10001000AA0CA90C031C12282B08F7070318FA0ACC
:100020002C08FA07FA0CF70CF90CF80CAD0B0828A1
:100030008A110A127A282C082E068039B000AC1FCB
:100040002628AB09AC09AB0A0319AC0AAE1F2D2850
:10005000AD09AE09AD0A0319AE0AF801F901F701BD
:10006000FA012E08031D37282D08031951281030D6
:10007000AF000310AB0DAC0DF70DFA0D2E087A0290
:10008000031D44282D087702031C4D282D08F70274
:10009000031CFA032E08FA020314F80DF90DAF0B36
:1000A0003928B01F5828F809F909F80A0319F90A7C
:1000B0008A110A128628840183131F308305831650
:1000C0001F149F141F159F11A5308312A1004D30DE
:1000D000A200CA30A3000330A400A501A601A70115
:1000E000A8012208AA002108A9002408AC002308BE
:1000F000AB0004287908AA007808A9007908AC00A8
:100100007808AB00AE010230AD001B287908FA0078
:100110007808F7007908F800F901FA017A08A800D0
:100120007908A7007808A6007708A500962863003C
:02400E00723FFF
:00000001FF
;PIC16F877
O Mikropascal é mais otimizado que o CCS ?
program TESTE;
var
k,l: integer;
hj: longint;
begin
k:=198778;
l:=197578;
hj:=(k*l)/2;
while true do // An infinite loop
begin
// wait for one second
end;
end.
******************* CÓDIGO GERADO **************************
:100000000428FF3FFF3FFF3F7A3003138312A00015
:100010000830A100CA30A2000330A3002230A4009F
:100020000F30A5007630A6009230A70016281728BA
:02400E00FFFFB2
:00000001FF
*************************************************************
*********************** CCS FONTE ***************************
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=8000000)
void main() {
signed long int k=198778,l=197578;
int32 hj=0;
hj = (k * l)/2;
SET_TRIS_D(0xFF);
output_D(0xFF);
while (true)
{
}
}
****************** CÓDIGO GERADO NO CCS ********************
:1000000000308A005B2800001030AD00F701FA01D3
:10001000AA0CA90C031C12282B08F7070318FA0ACC
:100020002C08FA07FA0CF70CF90CF80CAD0B0828A1
:100030008A110A127A282C082E068039B000AC1FCB
:100040002628AB09AC09AB0A0319AC0AAE1F2D2850
:10005000AD09AE09AD0A0319AE0AF801F901F701BD
:10006000FA012E08031D37282D08031951281030D6
:10007000AF000310AB0DAC0DF70DFA0D2E087A0290
:10008000031D44282D087702031C4D282D08F70274
:10009000031CFA032E08FA020314F80DF90DAF0B36
:1000A0003928B01F5828F809F909F80A0319F90A7C
:1000B0008A110A128628840183131F308305831650
:1000C0001F149F141F159F11A5308312A1004D30DE
:1000D000A200CA30A3000330A400A501A601A70115
:1000E000A8012208AA002108A9002408AC002308BE
:1000F000AB0004287908AA007808A9007908AC00A8
:100100007808AB00AE010230AD001B287908FA0078
:100110007808F7007908F800F901FA017A08A800D0
:100120007908A7007808A6007708A500962863003C
:02400E00723FFF
:00000001FF
;PIC16F877