首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

一个简单有关问题

2012-02-22 
一个简单问题bufdb8db?db8dup(?)具体回答以下是啥意思,为啥有3个db [解决办法]如果一条数据定义语句中有多

一个简单问题
buf   db   8
                db   ?
                db   8   dup(?)
具体回答以下是啥意思,为啥有3个db


[解决办法]
如果一条数据定义语句中有多个初始值,那么标号仅仅指向第一个字节的偏移,在下例中,如果标号list的偏移是0的话,那么值10在偏移0处, 20在偏移1处,30在偏移2处;
.data
list BYTE 10, 20, 30

并非所有的数据定义都需要标号,如果想继续以list开始的字节数组,就可以在随后的行上定义其他数据

list BYTE 10, 20, 30

BYTE 40, 50, 60

BYTE 70, 80, 90
[解决办法]
buf db 8
db ?
db 8 dup(?)
其实和
buf db 8,?,8 dup(?)是一回事.在内存里是一模一样的.
第二个字节没有一个标号直接引用,要相对buf偏移,就和后者是一回事.

像这样的:
buf db 8
dw 2807H
就和buf db 8,28H,07H 是一样的了.
[解决办法]
楼主知道完整的堆栈段定义吗?
STACK SEGMENT
db 200 dup(?)
STACK ENDS

db 200 dup(?)就是分配200个字节的内存空间,如果在db前面加上标号(变量名)也是可以的。

热点排行