您的位置:程序门 -> 其他开发语言 -> 汇编语言



一个简单问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一个简单问题[已结贴,结贴人:zd3824812]
发表于:2007-06-08 21:28:44 楼主
buf   db   8
                db   ?
                db   8   dup(?)
具体回答以下是啥意思,为啥有3个db
发表于:2007-06-08 21:41:111楼 得分:3
如果一条数据定义语句中有多个初始值,那么标号仅仅指向第一个字节的偏移,在下例中,如果标号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
发表于:2007-06-08 21:51:062楼 得分:4
buf   db   8
db   ?
db   8   dup(?)
其实和
buf   db   8,?,8   dup(?)是一回事.在内存里是一模一样的.
第二个字节没有一个标号直接引用,要相对buf偏移,就和后者是一回事.

像这样的:
buf   db   8
        dw   2807h
就和buf   db   8,28h,07h   是一样的了.
发表于:2007-06-08 21:51:573楼 得分:0
错了错了:
-------------------
像这样的:
buf   db   8
dw   2807h
就和buf   db   8,07h,28h   是一样的了.
嘿嘿,不好意思.
发表于:2007-06-09 13:33:274楼 得分:3
楼主知道完整的堆栈段定义吗?
stack   segment
        db   200   dup(?)
stack   ends

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


快速检索

最新资讯
热门点击