X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=sim%2Fucsim%2Fs51.src%2Fmov.cc;h=885b33243e096130bc76d4dd65946f10573cf842;hb=f27cbdc6513b26748661452e50ed3af99fac16a2;hp=c324ff59ffc5c965a42b469f04f115aa33d1a6c1;hpb=4c3872ef27c1263faae7d9b85c1821381646ece8;p=fw%2Fsdcc diff --git a/sim/ucsim/s51.src/mov.cc b/sim/ucsim/s51.src/mov.cc index c324ff59..885b3324 100644 --- a/sim/ucsim/s51.src/mov.cc +++ b/sim/ucsim/s51.src/mov.cc @@ -276,7 +276,7 @@ t_uc51::inst_push(uchar code) int res; addr= get_direct(fetch(), &event_at.ri, &event_at.rs); - MEM(MEM_SFR)[SP]++; + sfr->add(SP, 1); sp= get_indirect(sfr->get(SP), &res); if (res != resGO) res= resSTACK_OV; @@ -361,7 +361,7 @@ t_uc51::inst_pop(uchar code) sp= get_indirect(get_mem(MEM_SFR, SP), &res); if (res != resGO) res= resSTACK_OV; - MEM(MEM_SFR)[SP]--; + sfr->add(SP, -1); (*addr)= *sp; proc_write(addr); tick(1); @@ -485,6 +485,7 @@ t_uc51::inst_movx_$dptr_a(uchar code) { set_mem(MEM_XRAM, event_at.wx= sfr->get(DPH)*256+sfr->get(DPL), sfr->get(event_at.rs= ACC)); + tick(1); return(resGO); }