三星S3C/S3P/S3F9XXX系列單片機(jī)實(shí)現(xiàn)查表操作的一個(gè)示例
三星S3C/S3P/S3F9XXX系列單片機(jī)實(shí)現(xiàn)查表操作的一個(gè)示例
;實(shí)現(xiàn)查表操作須首先定義表地址,有兩種定義方式
;方式一常用于參數(shù)表定義:
ORG0040H
CODE_TABLE:
DB01H
DB02H
DB03H
;方式二常用于系列子程序地址表定義:
ORG0050H
DISPLAY_TABLE:
VECTOR$,DISPLAY_TR;DISPLAY_TR是一個(gè)子程序名稱,以下同
VECTOR$,DISPLAY_SET;注意這里每個(gè)地址均占用一個(gè)字(兩個(gè)字節(jié))
VECTOR$,DISPLAY_CHGSET;這些地址表填充由編譯器完成
;-------------------------------------------------------------------
;在進(jìn)行查表時(shí),注意一定要對(duì)應(yīng)好表格各行所在的地址,否則就大錯(cuò)特錯(cuò)了
ORG0100H
MAIN:
LDR0,#00H;表地址高位字節(jié)是00H
LDR1,#CODE_TABLE;低位為表名稱
LDCR10,@RR0;將表格地址的第1個(gè)數(shù)據(jù)調(diào)入R10中
INCR1
LDCR10,@RR0;將表格地址的第2個(gè)數(shù)據(jù)調(diào)入R10中
;....
;....
LDR0,#00H
LDR1,#DISPLAY_TABLE
LDCR14,@RR0;將顯示子過程表的第一個(gè)過程高位字節(jié)調(diào)入R14
INCR1
LDCR15,@RR0;將顯示子過程表的第一個(gè)過程低位字節(jié)調(diào)入R15
CALL@RR14;調(diào)用子過程
JPMAIN
;--------------------------------
;顯示測試溫度子程序
DISPLAY_TR:
NOP
RET
;---------------------------------
;顯示設(shè)置溫度子程序
DISPLAY_SET:
NOP
RET
;---------------------------------
;顯示修改設(shè)置溫度子程序
DISPLAY_CHGSET:
NOP
RET