winnie 发表于 2009-5-19 13:56:40

16系列里数据表的定义

用DT
比如:
TABLE
; ……
      DT00H,00H,00H,00H,00H,00H,00H,0FEH,40H,40H,40H,40H,40H,00H,00H,00H
      DT00H,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   
          retlw0x30                        
          retlw0x31                        
          retlw0x32
页: [1]
查看完整版本: 16系列里数据表的定义