添加收藏夹  设为首页  深圳服务热线:13751165337  13692101218
51电子网联系电话:13751165337
位置:首页 > IC型号导航 > 首字符S型号页 > 首字符S的型号第1104页 > SN8P1702P > SN8P1702P PDF资料 > SN8P1702P PDF资料1第23页
初步
跳转表
SN8P1702A/SN8P1703A
8位微控制器内置的12位ADC
跳转表能够实现多地址跳转功能。加入低字节程序计数器( PCL )和ACC
值,以得到一个新的PCL 。新的程序计数器( PC)指向的房源表了一系列跳转指令。该
方式很容易使多阶段程序。
当进位标志执行后,会出现“ADD PCL , A” ,也不会影响PCH寄存器。用户必须检查跳转
表跨越了ROM页边界或SONIX汇编软件生成的列表文件。如果跳转表
跨越了ROM页边界(例如从xxFFH到xx00H ) ,将跳转表移动到下一个程序的顶部
内存页( xx00H ) 。
在这里,一个页面的意思是256个字。
例如:如果PC = 0323H ( PCH = 03H , PCL = 23H )
ORG
B0ADD
JMP
JMP
JMP
JMP
0X0100
PCL ,A
A0POINT
A1POINT
A2POINT
A3POINT
;跳转表从ROM界的头
; PCL = PCL + ACC中,PCH不能被改变。
; ACC = 0 ,跳转到A0POINT
; ACC = 1 ,跳转到A1POINT
; ACC = 2 ,跳转到A2POINT
; ACC = 3 ,跳转到A3POINT
在下面的例子中,跳转表开始于0x00FD 。当执行B0ADD PCL ,A。如果ACC = 0或1 ,跳
表指向正确的地址。如果ACC较大则1会导致错误,因为PCH并不增加1
自动。我们可以看到, PCL = 0时, ACC = 2 ,但PCH仍然保持为0 ,程序计数器(PC )会
指向一个错误的地址为0x0000和崩溃系统操作。检查是否跳转表是很重要的
跨越边界( xxFFH到xx00H ) 。一个良好的编码风格是将跳转表在ROM的开始
边界(如0100H ) 。
例如:如果“跳表”跨越ROM边界,将引起错误。
ROM地址
.
.
.
0X00FD
0X00FE
0X00FF
0X0100
0X0101
.
.
.
.
.
B0ADD
JMP
JMP
JMP
JMP
.
.
PCL ,A
A0POINT
A1POINT
A2POINT
A3POINT
; PCL = PCL + ACC中,PCH不能被改变。
; ACC = 0
; ACC = 1
; ACC = 2
在这里跳表跨界
; ACC = 3
SONIX提供了安全的跳转表功能的宏。这个宏将检查ROM的边界移动和跳跃
表,自动的位置上。这个宏的副作用是可能浪费了一些ROM大小。请注意
该宏最大的跳转表数量限制少于254 。
@JMP_A
万家乐
IF
JMP
ORG
ENDIF
添加
ENDM
VAL
( ( $ + 1 ) ! &为0xFF00 )! = ( ( $ + ( VAL ) ) ! &为0xFF00 )
( $ | 0XFF )
( $ | 0XFF )
PCL ,A
注:“ VAL”为跳转表列出号码的数目。
松翰科技股份有限公司
第23页
修订版0.5

深圳市碧威特网络技术有限公司