英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

标题: 16系列里数据表的定义 [打印本页]

作者: winnie    时间: 2009-5-19 13:56
标题: 16系列里数据表的定义
用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




欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/) Powered by Discuz! X3.2