Mam otazku - ak je nejaky program skompilovany pre 89c51 od adr.8000 a ja ho bez zmien vypalim do 89c51 od adr.0000h - bude slapat za predpokladu, ze nastavim vsetky 3 lock-bity? Ide mi o to - ked sa zakaze externe adresovanie, ci bude brat 89c51 v uvahu tzv.“zrkadla” v internom pamatovom rozsahu(cize LJMP nad tento rozsah priradi nizsej-adekvatnej adrese) a program pobezi stejne, ako z externej prog.pamate od adr.8000H?
Pokud vím, tak program nelze zkompilovat pro adresy 8000h, protože reset a přerušení začínají vždy od 0000h. U x51 se kódová paměť nezrcadlí. K externí paměťi se přistupuje jen tehdy, jeli adresováno mimo prostor interní (E)EPROM. Jeli EA=0, připadne celý adresní prostor externí paměti. Když externí paměť není nebo je zablokována, přečte se 00h nebo 0FFh. Jedno je instrukce NOP, druhé je nějaká artitmetická operace. Každopádně by procesor vykonal tisíce takových instrukcí do přetečení PC registru a začal by resetem od 0000h pěkně od začátku.
Ide to len v prípade AT89C(S)20(40)51. časť, alebo celý program pracujúci na 8052 v externej pamäti od adr. napríklad 8000H vypálený do týchto Atmelov netreba meniť, ak sú použité LJMP/LCALL 8xxxH a program bezchybne pobeží.