用DT
比如:
TABLE
; ……
DT 00H,00H,00H,00H,00H,00H,00H,0FEH,40H,40H,40H,40H,40H,00H,00H,00H
DT 00H,40H,40H,40H,40H,40H,40H,7FH,40H,40H,40H,40H,40H,60H,40H,00H,
;……
编译后相当于
TABLE: RETLW 00H
RETLW 00H
.
.
.
.
RETLW 40H
RETLW 00H
在16系列里不要用DB来定义表格
在16系列里(12位或14位指令字长),DB相当于定义指令了,例,如在12位指令字长的型号里:
DB 0x30,0x31 实际存储到该地址的内容会是0000 0011 0001(第一个字节的高四位丢失),相对应的指令是movwf 0x11,根本不是你想要的东西。DB伪指令适合在18系列的程序区定义数据,因为18系列的程序区是16位的,而且表读写指令。
16系列里定义表格通常是用retlw的格式,相应的伪指令是DT,例:
Test1
dt 0x30,0x31,0x32
编译后的结果为:
Test1
retlw 0x30
retlw 0x31
retlw 0x32 |