我一直在使用yasm汇编语言,我生成了一个包含以下内容的列表文件。我需要帮助了解如何在第一列中计算内存位移。提前谢谢。
1 %line 1+1 memory.asm
2 [section .data]
3 00000000 04000000 a dd 4
4 00000004 CDCC8C40 b dd 4.4
5 00000008 00000000<rept> c times 10 dd 0
6 00000030 01000200 d dw 1, 2
7 00000034 FB e db 0xfb
8 00000035 68656C6C6F20776F72- f db "hello world", 0
9 00000035 6C6400
答案 0 :(得分:0)
汇编程序正在生成字节(机器代码),从某个起始地址(此处为0
)开始并将它们放在一起。因此,首先a dd 4
产生4个字节的数据04 00 00 00
,因此填充地址0,1,2和3的存储器。下一个空闲时隙位于地址4.有b dd 4.4
,再长4个字节。 c times 10 dd 0
长40个字节,因此8 + 40 = 48(0x30)=&gt;下一个免费插槽。