c: hi-tech 9,80, interrupt asm
Tomáš Hamouz
hamouz na divesoft.cz
Čtvrtek Duben 3 09:31:29 CEST 2014
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
Další informace o konferenci Hw-list