Warning: fopen(/www/wwwroot/www.wendadaohang.com/data/md5_content_title/4d/4d7da4ca6f8a95e799602c5d1d9928e7.txt): failed to open stream: No space left on device in /www/wwwroot/www.wendadaohang.com/inc/function.php on line 2468

Warning: flock() expects parameter 1 to be resource, bool given in /www/wwwroot/www.wendadaohang.com/inc/function.php on line 2469

Warning: fclose() expects parameter 1 to be resource, bool given in /www/wwwroot/www.wendadaohang.com/inc/function.php on line 2475
在8051单片机中程序计数器PC位于内部RAM中的那一个单元地址 - www问答网

在8051单片机中程序计数器PC位于内部RAM中的那一个单元地址

如题所述

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 不是同一个程序码。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-23
程序计数器PC不能直接操作
这是单片机取指令的计数器,用于存放CPU下一条要执行的指令地址。

无法写入跟读取操作 不存在内存单元当中。
要修改PC的值可以通过跳转、调用、返回指令实现本回答被网友采纳
第2个回答  2013-11-23
PC不属于内部RAM的任意地址。也就是说不属于存储结构中。追问

他也是一个特殊功能寄存器呀!不属于存储结构那它怎么寄存数据

第3个回答  2013-11-23
每一个都不一样,你最好找厂家问下
相似回答