• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

51里面DB命令具体是怎么样执行的??请教

程序执行DB命令后具体是怎么工作的?
比如DB 70H,这有什么作用?
程序执行完这行命令后会怎么样?
全部回复(14)
正序查看
倒序查看
5880527
LV.1
2
2006-12-06 18:15
它是数据,单片机不去执行它
0
回复
henan123
LV.6
3
2006-12-06 19:11
@5880527
它是数据,单片机不去执行它
这一点我也想了好几天.弄不懂,还请高手过来指点指点,无奈.呵呵
0
回复
2006-12-07 14:36
DB 70H 是你在数据RAM中 指定了一个 存储单元 70H
0
回复
5880527
LV.1
5
2006-12-07 20:10
@菠萝蜜999
DB70H是你在数据RAM中指定了一个存储单元70H
楼上的,你错了哈,那是EQU命令,它才定义一单元,DB就是定义一常量,比如表格之类
0
回复
g_yong
LV.4
6
2006-12-08 11:20
伪指令
0
回复
henan123
LV.6
7
2006-12-09 09:30
@g_yong
伪指令
我也知道是伪指令,但他到底怎么用,有什么用,还请指教
0
回复
hotpower
LV.5
8
2006-12-09 10:56
哈哈~~~如果执行到db伪指令程序就飞了~~~
0
回复
xhm909
LV.4
9
2006-12-12 09:00
@hotpower
哈哈~~~如果执行到db伪指令程序就飞了~~~
我终于弄明白了,DB指令就是建立个数据库
如:
MOV DPTR #TABLE
JMP A @A+DPTR
TABLE:
DB 04H,05H,……

大概就是这样
0
回复
hotpower
LV.5
10
2006-12-14 00:26
@xhm909
我终于弄明白了,DB指令就是建立个数据库如:MOVDPTR#TABLEJMPA@A+DPTRTABLE:DB04H,05H,……大概就是这样
MOV DPTR #TABLE
JMP A @A+DPTR
TABLE:
DB 04H,05H,……

应该为:
MOV DPTR,#TABLE
MOVC A,@A+DPTR
................
TABLE:
DB 04H,05H,……
0
回复
xiaobaibaba
LV.1
11
2006-12-14 12:21
伪指令,申请单元
用法很多
例如:
DB 0,0,0,0
就是四个nop空指令,用来延时用

再例如:
ASC16,0,的一个字模
;0
DB 000H,000H,07CH,0C6H,0C6H,0CEH,0D6H,0D6H
DB 0E6H,0C6H,0C6H,07CH,000H,000H,000H,000H

再再例如:
db 0,1,4,9,16,25,36,49,64,81
0-9的平方值,不计算就查此表
0
回复
lmmm
LV.4
12
2006-12-15 22:29
这个坛子里弱智太多

不好意思,初学者搞不清DB含义可以理解,但是以大侠身份胡乱回答就不对了.DB的意思就是预先烧录若干字节常数在程序空间.比如说

aaa   DB     50

就是在地址为aaa的地方塞进一个字节50=32H的数据.不必关心aaa的地址到底是多少,只要用#aaa存取该数据50=32H就可以.再比如说

aaa   DB     50,60

就是在地址为aaa的地方塞进两个字节50=32H,60=3CH的数据.以此类推.
0
回复
xhm909
LV.4
13
2006-12-26 20:50
@lmmm
这个坛子里弱智太多不好意思,初学者搞不清DB含义可以理解,但是以大侠身份胡乱回答就不对了.DB的意思就是预先烧录若干字节常数在程序空间.比如说aaa  DB    50就是在地址为aaa的地方塞进一个字节50=32H的数据.不必关心aaa的地址到底是多少,只要用#aaa存取该数据50=32H就可以.再比如说aaa  DB    50,60就是在地址为aaa的地方塞进两个字节50=32H,60=3CH的数据.以此类推.
水平没有你高,也不必如此挖苦吧!
0
回复
xhm909
LV.4
14
2006-12-26 20:55
@lmmm
这个坛子里弱智太多不好意思,初学者搞不清DB含义可以理解,但是以大侠身份胡乱回答就不对了.DB的意思就是预先烧录若干字节常数在程序空间.比如说aaa  DB    50就是在地址为aaa的地方塞进一个字节50=32H的数据.不必关心aaa的地址到底是多少,只要用#aaa存取该数据50=32H就可以.再比如说aaa  DB    50,60就是在地址为aaa的地方塞进两个字节50=32H,60=3CH的数据.以此类推.
你水平高也不需要挖苦别人
0
回复
njyd
LV.8
15
2006-12-27 22:04
@5880527
楼上的,你错了哈,那是EQU命令,它才定义一单元,DB就是定义一常量,比如表格之类
  你有错.
  EQU是定义常量,这个常量只在编译程序中用.编译程序见到这个定义的常量名都用被定义的常量替代.
  DB是在程序中定义一个数据组,当然也可以算是定义一个或一组常量,但这个组是直接放在编译好的目标程序中,一般作为数握用来查表用.当然也可以把手工编译好的目标程序放在里面,但容易出错,所以不提倡这样用.
0
回复