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