MCU 89C4051 a používání přerušení

Jan Waclawek konfera na efton.sk
Pondělí Únor 20 13:48:50 CET 2012


V 99% pripadoch mas pravdu.

Toto vsak nie kazdy asembler vie urobit (a existuju dovody pouzit iny, napr. pri udrziavani projektu robeneho v ne-Intel/Keil-kompatibilnom asm, alebo ak sa pouzije asm z SDCC kvoli linkovaniu programom v C/SDCC), naviac aj tie, co to vedia, to nie vzdy urobia uplne optimalne (ono to nie je celkom trivialy problem).

Naviac AJMP a SJMP su dvojbytove a LJMP je trojbytovy, co hra rolu ak robis tabulky skokov. Dalej SJMP tym, ze je relativny, sa hodi na relokovatelne rutiny. Oboje ma minoritne pouzitie, ale je dobre o tom aspon vediet, pre pripad ze to treba.

Inak spravanie AJMP/ACALL je jednym z podivnych dedicstiev z 8048.

wek


On Sun, 19 Feb 2012 11:44:08 +0100
Milan Mlynarčík <milan.m at centrum.sk> wrote:

> Nikdy som nepochopil, naco je dobre si s tymto komplikovat zivot.
> Predsa staci v zdrojaku pisat vzdy JMP a prekladac si sam vyberie, aky xJMP
> tam potrebuje.
> 
> 
> 
>                             Milan  Mlynarčík
> 
> 
> 
> 
> 
> -----Original Message-----
> From:  Martin Záruba
> 
> Je to tak, ze AJMP umi skocit v ramci 2kB bloku, tedy ne do prvnich 2kB.
> Pokud potrebujete skocit mezi bloky musite pouzit JMP nebo CALL (navratova
> adresa z RET je vzdy absolutni).
> SJMP umi skocit az o 128 byte dopredu nebo az o 127 byte dozadu. Muze tim i
> prechazet z jednoho 2kB bloku do druheho.
> 


Další informace o konferenci Hw-list