51????????????????λ
51???????????λ??????
POP ACC ; pop return address
POP ACC
;????PC
MOV SP,#30H ;??λ??SP?07H ?????????λ??
MOV PSW,#00H ;??????
CLR A ; push 0 as new
PUSH ACC ; return address to stack
PUSH ACC
;????PC=0?????????
RETI ; execute return of interrupt
;??????????0000H?????????,????????????????!
??C51?????????λ
????1??
void(*SoftReset)();
SoftReset=0;
SoftReset();
????????ú?????????????????????????????????0??
????2?? ?????
#pragma asm
LJMP 0FFF0h;//ljmp 0000h
#pragma endasm
????3?? ??C51???????У?????????????????????λ??
????????????????????е? reset()??????λ?????????????
LCALL C:0000??
extern void rest(void); //???????????
void main()
{
rest(); //??λ
}
????4????????????????????????λ??
????????8λ????? 16λ 32λ????

????admin ?????????2018-05-19