c: hi-tech 9,80, interrupt asm

Miroslav Draxal evik na volny.cz
Čtvrtek Duben 3 09:48:27 CEST 2014


Tak trochu jsem tuto optimalizaci očekával. Ale zase na druhé straně, třeba
si to autoři schovávají do další vezre.

-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Tomáš Hamouz
Sent: Thursday, April 03, 2014 9:31 AM
To: HW-news
Subject: Re: c: hi-tech 9,80, interrupt asm

Jestli po tom kompilátoru nechcete moc.

Pokud by se měl chovat tak jak píšete, tak by musel kompilovat dvakrát,
poprvé když narazí na danou funkci a podruhé, když už ví jaké další funkce
volá. Protože ve vašem případě v okamžiku kompilace o volané funkci nic
neví, počítá s nejhorší variantou.

Linker jen doplní adresy externích objektů, ale do vlastního kódu funkce už
nezasahuje.

Tomáš


> To je logická domněnka, Já myslel, že si to nejdřív všechno připraví a 
> pak to slinkuje dohromady. V té přípravě jsem předpokládal, že si 
> právě osahá všechny funkce. Pravdou je, pokud se podívám na "profi" 
> programy od Microchipu, tak veškeré podprogramy jsou na začátku a 
> samotná hlavní procedura, která volá podprogramy je vždy na konci. 
> Takže asi tohle bude důvod. Díky!!!

> -----Original Message-----
> From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of David 
> Obdrzalek
> Sent: Thursday, April 03, 2014 8:35 AM
> To: HW-news
> Subject: Re: c: hi-tech 9,80, interrupt asm

> On 2 Apr 2014 at 23:34, Miroslav Draxal wrote:

>> Dobrý den, tak nakonec to dopadlo, ale nejsem s toho moudrý.
>> 
> ...

>> Ovšem po přidání těl procedur obsluhy to zase začalo ukládat 
>> nepoužívané registry.
>> 
>> Následně po laborování jsem zjistil, že pokud uložím podprogramy, 
>> které se volají z hlavního programu přerušení před něj, je zase vše v
> pořádku.
>> 
>> Správná struktura
>> Podprogram_přerušení1
>> Podprogram_přerušení2
>> Program_přerušení
>> 
>> Špatná struktura
>> Program_přerušení
>> Podprogram_přerušení1
>> Podprogram_přerušení2
>> 
>> Zatím tohle chování neumím vysvětlit. Dělá to jak Hi-Tech 9,80 tak 
>> XC8
> 1,30.

> Soudím, že to je proto, že při překladu "Program_přerušení" překladač 
> neví, které registry budou v těch volaných "Podprogram_přerušení" 
> použity a proto pro jistotu uloží všechno. Když už je ale má přeložené 
> před tím, tak to ví a správně uloží jen co je potřeba.

> D.O.

> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz 
> http://list.hw.cz/mailman/listinfo/hw-list

> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz 
> http://list.hw.cz/mailman/listinfo/hw-list

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list