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

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 2469|回复: 0
打印 上一主题 下一主题

16系列里数据表的定义

[复制链接]
跳转到指定楼层
1#
发表于 2009-5-19 13:56:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用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
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-11-1 07:46 , Processed in 0.051988 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表