
ST62T08C / T09C ST62T10C / T20C / E20C
CPU寄存器
(续)
然而,如果程序空间中包含多个
4096字节,在程序中的附加内存
空间可以通过使用程序来解决
银行开关寄存器。
读取AD-后PC值递增
着装当前指令的。要执行相对
跳跃, PC和偏移通过错开
ALU的,在那里它们被加入;其结果是再
移回PC 。程序计数器可以
通过以下方式来改变:
- JP(跳转) instructionPC =跳转地址
- CALL instructionPC =电话地址
- 相对分行Instruction.PC = PC +/-偏移
- 中断
PC =中断向量
- 复位
PC =复位向量
- RET和放大器; RETI instructionsPC = POP(堆栈)
- 正常instructionPC = PC + 1
标志( C, Z) 。
该ST6 CPU包括3对
标志(进位和零) ,每对关联
与操作的三个正常模式中的一种:
普通模式,中断模式和非屏蔽
中断模式。每对包括一个携带
标志和零标志。一对( CN, ZN )被用于
正常操作过程中,另一对用于很好地协同
的中断模式(CI, ZI) ,以及第三对用于
在非屏蔽中断模式( CNMI , ZN-
MI ) 。
在ST6 CPU采用双旗相关
与当前的模式:一旦中断(或
一个不可屏蔽中断)产生时, ST6
CPU采用中断标志位(相应的NMI标志)
而不是正常的标志。当RETI指令
梁支被执行时,先前使用的一组
标志被恢复。但是应当注意的是,每个标志
集只能在其自己的上下文来解决(非
可屏蔽中断,正常中断或主例行程序
齿) 。这些标志背景中不被清除
切换,从而保持自己的状态。
进位标志置位时,进位或借位OC-
在算术运算小人;否则它是
清除。进位标志也设置为值
位在一个位测试指令测试;它也着重参加
在旋转的酱离开的指令。
零标志被设置,如果最后arithme-的结果
抽动或逻辑运算是等于零;其它 -
聪明的它被清除。
三组标志之间的切换是per-
自动形成时的NMI ,中断或
一个RETI指令发生。由于NMI模式
单片机的复位之后,自动选择,
在ST6核心采用起初NMI标志。
堆栈。
该ST6 CPU包括一个真正的后进先出硬
餐具堆其中省去了一个堆栈
指针。栈包括六个独立的12位
那些不属于该数据RAM位置
空间的RAM区域。当一个子程序调用(或国际
中断请求)时,每个级别的内容
移入下一个较高的水平,而内容
的PC机被移入第一级(原
第六堆栈级别的内容会丢失) 。当一个
子程序或中断返回时( RET或RETI
指令)时,第一级寄存器被移回
到计算机中,每个等级的值被弹出
备份到以前的水平。由于积聚
器,与所有其他数据空间的寄存器,
没有被存储在栈中,这些管理
寄存器应该在子程序,内执行
齿。该协议栈将保持在其“最深切的”位置
如果超过6嵌套调用或中断execut-
ED ,因此最后的返回地址将
会丢失。它也将保持在如果其最高位置
栈是空的,一个RET或RETI被执行。
在这种情况下的下一个指令将被执行。
图7. ST6 CPU编程模式
l
指数
注册
b7
b7
b7
b7
b7
b11
X REG 。指针
REG 。指针
V注册
W寄存器
ACCUM ULATO
b0
短
直接
b0
地址
模式
b0
b0
b0
b0
程序计数器
六级
堆栈寄存器
一般标志
中断FL AGS
NMI FLAGS
C
C
C
Z
Z
Z
VA000423
13/70
13