8051中有4个寄存器组,地址从00H~1FH,每组8个字节。依次是、PC 16bit 2byte,Acc 8bit 1byte,B 8bit 1byte ,PWS 8bit 1byte,SP 8bit 1 byte,DPTR 16bit 2 byte 共8字节。 共32 字节。00H~01H、08H~09H、 10H~11H、18H~19H都是PC寄存器地址。只是在同一时刻只能使用其中之一组寄存器而已。所以在中断服务程序的第一条指令既是转换寄存器组,保留中断前状态。临时使用空闲寄存器组工作。
追问那在SFR中ACC,B,PSW,SP,DPTR等特殊功能寄存器都有他们自己的位置,为什么PC没有呢?
追答无条件转移 JMP ,条件转移,子程序调用、系统中断 都是在改变PC的值!LJMP 指令就相当于 MOV PC,[adress] 只是 MOV 和 LJMP 不是同一个程序码。