参数资料
型号: SN8P1603S
厂商: SONIX Technology Co., Ltd.
英文描述: 8-Bit Micro-Controller
中文描述: 8位微控制器
文件页数: 22/94页
文件大小: 540K
代理商: SN8P1603S
SN8P1600
8-bit micro-controller
SONiX TECHNOLOGY CO., LTD
Page 22
Revision 1.94
JUMP TABLE DESCRIPTION
The jump table operation is one of multi-address jumping function. Add low-byte program counter (PCL) and ACC
value to get one new PCL. The new program counter (PC) points to a series jump instructions as a listing table. The
way is easy to make a multi-stage program.
When carry flag occurs after executing of “ADD PCL, A”, it will not affect PCH register. Users have to check if the jump
table leaps over the ROM page boundary or the listing file generated by SONIX assembly software. If the jump table
leaps over the ROM page boundary (e.g. from xxFFH to xx00H), move the jump table to the top of next program
memory page (xx00H).
Here one page mean 256 words.
Example :
ORG
0X0100
; The jump table is from the head of the ROM boundary
B0ADD
PCL, A
; PCL = PCL + ACC, the PCH can’t be changed.
JMP
A0POINT
; ACC = 0, jump to A0POINT
JMP
A1POINT
; ACC = 1, jump to A1POINT
JMP
A2POINT
; ACC = 2, jump to A2POINT
JMP
A3POINT
; ACC = 3, jump to A3POINT
In following example, the jump table starts at 0x00FD. When execute B0ADD PCL, A. If ACC = 0 or 1, the jump
table points to the right address. If the ACC is larger then 1 will cause error because PCH doesn't increase one
automatically. We can see the PCL = 0 when ACC = 2 but the PCH still keep in 0. The program counter (PC) will
point to a wrong address 0x0000 and crash system operation. It is important to check whether the jump table
crosses over the boundary (xxFFH to xx00H). A good coding style is to put the jump table at the start of ROM
boundary (e.g. 0100H).
Example: If “jump table” crosses over ROM boundary will cause errors.
ROM Address
.
.
.
.
.
.
0X00FD
B0ADD
PCL, A
0X00FE
JMP
A0POINT
0X00FF
JMP
A1POINT
0X0100
JMP
A2POINT
0X0101
JMP
A3POINT
.
.
.
.
; PCL = PCL + ACC, the PCH can’t be changed.
; ACC = 0
; ACC = 1
; ACC = 2
jump table cross boundary here
; ACC = 3
SONIX provides a macro for safe jump table function. This macro will check the ROM boundary and move the jump
table to the right position automatically. The side effect of this macro maybe wastes some ROM size.
@JMP_A
MACRO
VAL
IF
(($+1) !& 0XFF00) !!= (($+(VAL)) !& 0XFF00)
JMP
($ | 0XFF)
ORG
($ | 0XFF)
ENDIF
ADD
PCL, A
ENDM
Note: “VAL” is the number of the jump table listing number.
相关PDF资料
PDF描述
SN8P1603X 8-Bit Micro-Controller
SN8P1604 8-Bit Micro-Controller
SN8P1604AK 8-Bit Micro-Controller
SN8P1604AP 8-Bit Micro-Controller
SN8P1604AQ 8-Bit Micro-Controller
相关代理商/技术参数
参数描述
SN8P1603X 制造商:SONIX 制造商全称:SONIX 功能描述:8-Bit Micro-Controller
SN8P1604 制造商:SONIX 制造商全称:SONIX 功能描述:8-Bit Micro-Controller
SN8P1604AK 制造商:SONIX 制造商全称:SONIX 功能描述:8-Bit Micro-Controller
SN8P1604AP 制造商:SONIX 制造商全称:SONIX 功能描述:8-Bit Micro-Controller
SN8P1604AQ 制造商:SONIX 制造商全称:SONIX 功能描述:8-Bit Micro-Controller