程序计数器PC用来操控指令的履行次序。它的宽度决议了能够直接寻址的规模,在PIC单片机内核设计时,PC宽度有12/13/14/16位,最常用的一般是13位,故理论上能履行的指令代码最多为8K字。假如实践没有8K则从最高位开端的若干位无效。
经过指令的履行能够强制更改PC的值,然后操控程序的分支或许跳转。
程序履行时,针对一切操作数的算术或逻辑运算都将在其ALU逻辑运算单元上完结。操作后的标志成果将会在状况寄存器STATUS中描绘。W寄存器等同于其他单片机的累加器ACC,在PIC单片机上被叫做作业寄存器。它是一个十分特别的寄存器(和下面叙述的归属于寄存器文档的数据寄存器比较),可用于操作数的赋值或传递,也能够寄存最终的运算成果。
任何针对数据寄存器的操作,其寻址方法分两种:直接寻址和直接寻址。直接寻址是用指令中直接包括的地址信息,合作辅佐寄存器STATUS供给的额定地址位,对确认地址的寄存器操作;直接寻址使用指针寄存器FSR和辅佐寄存器STATUS供给的全地址信息对方针寄存器操作。
寄存器文档概念:PIC单片机内的寄存器可分为两种。其一是作业寄存器,只要一个W寄存器;其它是悉数归属于寄存器文档的数据寄存器。寄存器文档(register file)概念,实践上是指其它内部结构将一切的用户寄存器(即用户可用的RAM)、一切的输入/输出端口、一切的特别功用操控寄存器看作是彻底相同的数据寄存器。在算术逻辑单元ALU中任何运算,其操作的数据有两个来历:一个是W寄存器,另一个就来自于任何其它数据寄存器,不论是RAM,仍是I/O口,或许是特别寄存器,其操作方法彻底相同。并且其成果寄存意图寄存器也有两个:一个是W寄存器,还有一个便是数据寄存器自身。这个和了解的51单片机不同:它们的操作成果一定是放在累加器内的。
依据“哈佛”结构,其取指令总线和取数据总线是彻底独立分隔的,它不同于“冯.诺漫”结构的一致编址。因而PIC单片机的内读取程序的总线宽度和数据总线宽度能够不一样,中档PIC单片机的一切指令都描绘成一个字,其长度为14位。在这一个指令中包括两个部分:一部分为操作码,它告知单片机这是一条什么样的指令,它要完结什么样的使命,操作数在哪里等等;另一部分便是详细的操作数,现已内含在指令中心。所以对程序的空间只需进行一次读取操作即可一起得到指令的操作码和操作数,指令履行功率得到进步。由于指令是单字节的寄存,所以不论程序计数器PC的值多少,从程序空间取出的指令都是一条完好的指令。为了避免在搅扰场合呈现程序跑飞的景象,只需要简略的在程序的空间的相关方位刺进圈套代码,就能够捕捉不合法程序跳转,便可使程序康复正常。并且其它单片机宗族有很多是依据多字节指令系统,如51,moto公司的Freescale单片机完结相同的当即数赋值时的指令组成状况。正常状况下单片机在履行指令时总是首要读取操作码,译码后依据不同的指令的详细使命要求持续从程序的空间读取若干个字节的操作数。如此的读取指令方法,在碰到搅扰使程序指针PC跑飞时,有可能使PC值落在某一条指令操作码后的操作数方位上,单片机就会把该操作数当作操作码读取并译码,此刻的景象就无法操控,由于不知道此操作数代表的是什么操作码,所以后边的接连一大串的指令操作都可能是不合法指令,底子无法猜测。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/258489.html