6502寄存器
1.累加寄存器A
这是个8位寄存器,既然是8位,那么阐明该寄存器中只能存储一个(00-FF)之间的当即数.它与算术逻辑运算单元一同完结各种算术逻辑运算,它既可寄存操作前的初始数据,也可寄存操作成果,所以称为累加器.
在6502汇编中,这个寄存器应该算是用的最多的
咱们也不要管那么多,只需知道有这个寄存器,该寄存器可以寄存一个00-FF之间的当即数就可以了.
2.变址寄存器X
也是8位寄存器,它在编程中常被当作一个计数器来运用.它可以由指令操控而被置成一个常数,并能便利的用加1,减1,比较操作来修正和测验其内容,以使得程序可以便利灵敏的处理数据块,表格等问题.
3.变址寄存器Y
用法和变址寄存器X相同,只不过在有些状况下,比方程序中要一起处理两个以上的数据块时,一个变址寄存器显得不行,所以6502中有两个用于变址的寄存器X和Y.
4.程序计数器PC
它是6502中仅有的16位寄存器,PC是用来寄存指令地址码的寄存器,因为程序的履行一般为次序履行方法,每取出一个指令字节后PC即主动加1,为取下一个指令字节做好预备,所以程序计数器PC中的内容往往是指向下一个指令字节地址,但在履行搬运指令时,PC中将被放进要搬运的方针地址.
5.仓库指针S
它是用来指示仓库栈顶方位的寄存器,因为6502规则仓库设在第1页存储器中,所以仓库指针S也是8位寄存器只用来指出仓库方位的低8位地址.S具有数据进栈时主动减1,出栈时主动加1的功用.
6.标志寄存器P
这也是8位的寄存器,可是只用了其间的7位,第5位空着不必.
每条指令在履行之后往往会发生进位溢出,成果为0,或是成果为负数(大于7F的数叫负数)的状况.指令履行完后常常要保存这些状况作为条件分支的根据,标志寄存器P便是为了习惯这需求而规划的,在寄存器P中有以下7个标志位,不过我这儿只介绍其间的5位
76543210
NV BDIZC
C–进位标志.指令履行结束后的最高进位状况,若最高位有进位则使C=1,若最高位无进位则使C=0
N–零标志.指令履行结束后成果为0,那么Z=1;不然Z=0.
I–中止标志.此方位0表明答应中止,置1表明制止中止,但非屏蔽中止不受次束缚
V–溢出标志.指令履行后若发生溢出,则次标志位被置1
N–负数标志.指令履行结束后,若成果最高位为1,则该方位1
下面咱们举例来阐明:
例:两个正数61,4A相加
01100001
+01001010
———-
=10101011
两个正数相加,为什么成果变为负数呢?这是也61+4A=AB,超过了八位寄存器所能表明的最大正数7F,而发生了溢出,那么这时V=1,成果不是0,那么Z=0,成果最高位为1,那么N=1,成果最高位没有进位,那么C=0
标志位常常在履行条件搬运指令时做为条件判别的根据.这在后边的指令系统中会讲到.
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/fabu/260227.html