;点击这里直接下载该示例源码
;---------------------------------------------------
;三星S3C/S3P/S3F9XXX系列单片机实现查表操作的一个示例
;---------------------------------------------------
;实现查表操作须首先定义表地址,有两种定义方式
;方式一常用于参数表定义:
ORG 0040H
CODE_TABLE:
DB 01H
DB 02H
DB 03H
;方式二常用于系列子程序地址表定义:
ORG 0050H
DISPLAY_TABLE:
VECTOR $,DISPLAY_TR
;DISPLAY_TR是一个子程序名称,以下同
VECTOR $,DISPLAY_SET
;注意这里每个地址均占用一个字(两个字节)
VECTOR $,DISPLAY_CHGSET
;这些地址表填充由编译器完成
;-------------------------------------------------------------------
;在进行查表时,注意一定要对应好表格各行所在的地址,否则就大错特错了
ORG 0100H
MAIN:
LD R0,#00H ;表地址高位字节是00H
LD R1,#CODE_TABLE
;低位为表名称
LDC R10,@RR0 ;将表格地址的第1个数据调入R10中
INC R1
LDC R10,@RR0 ;将表格地址的第2个数据调入R10中
;....
;....
LD R0,#00H
LD R1,#DISPLAY_TABLE
LDC R14,@RR0 ;将显示子过程表的第一个过程高位字节调入R14
INC R1
LDC R15,@RR0 ;将显示子过程表的第一个过程低位字节调入R15
CALL @RR14 ;调用子过程
JP MAIN
;--------------------------------
;显示测试温度子程序
DISPLAY_TR:
NOP
RET
;---------------------------------
;显示设置温度子程序
DISPLAY_SET:
NOP
RET
;---------------------------------
;显示修改设置温度子程序
DISPLAY_CHGSET:
NOP
RET
;---------------------------------
|
相关备注: |
初学者请详细阅读相关的指令说明才好 |
|