汇编dw 的问题
发布网友
发布时间:2023-07-08 15:55
我来回答
共3个回答
热心网友
时间:2024-11-25 07:04
编译器从第一行开始处理dw xxxxh,xxxxh,xxxxh,xxxxh
这是第一行,偏移地址从开始0。段地址通过段名关系起来。
data segment
dw 1234h,5678h,9abch,0defh
dw 0,0,0,0,0,0,0,0,
data end
如果是这样定义的话,则地址从data(这里最终由编译器确定为一个常数):0开始
那么intel的世界里,在data:0那里的每个字节内容将是:
34h 12h |78h 56h | bch 9ah | efh 0dh
1234h | 5678h | 9abcdh | 0defh
这样的话1234h的地址为date:0
5678h的地址为data:2
9abch的地址为data:4
0defh的地址为data:6
masm5.0通常把后面dw 0,0,0,0,0,0,0,0的结果跟在上一次结果的后面。
将会从data:8开始。
但是masm5.0不一定会让两个段(比如data段和code段)紧跟着放在一起。
热心网友
时间:2024-11-25 07:04
内存是以字节编址的,dw是双字节
dw XXXXH,XXXXH,XXXXH,XXXXH
0 1 2 3 4 5 6 7
所以有,CS:0 CS:2 CS:4
你下面所写的两句等价于
dw XXXXH,XXXXH,XXXXH,XXXXH,0,0,0, 0,0, 0,0,0
0 , 2 , 4, 6,8 10 12 14 16。。。
热心网友
时间:2024-11-25 07:05
dw XXXXH,XXXXH,XXXXH
dw 0,0,0,0
等价于
dw XXXXH,XXXXH,XXXXH,0,0,0,0
即两组数据的内存分配空间是连续的