昨天我正在学习SIZEOF和TYPE操作员.在这样做时,我创建了一个数组,
Array QWORD 1h,2h,3h,4h,5h
Run Code Online (Sandbox Code Playgroud)
在.code部分,我写道,
MOV eax, SIZEOF Array
Run Code Online (Sandbox Code Playgroud)
组装完成后,我只有28个字节分配给数组(使用visual studio community 2015)是很尴尬的.我在调试会话中看到了寄存器的值.
我的问题是,每个QWORD占用8个字节的内存.那么,为什么我没有将SIZEOF数组作为40?
更糟.当我跑这个,
Array QWORD 1h
Run Code Online (Sandbox Code Playgroud)
它给了我8个字节的预期
Array QWORD 1h,2h
Run Code Online (Sandbox Code Playgroud)
给我10 .. !! 和,
Array QWORD 1h,2h,3h
Run Code Online (Sandbox Code Playgroud)
给我18 .. !!
等等...
默认情况下,Visual Studio的注册窗口显示十六进制数字.可能是因为你在混淆28和0x28吗?0x28与40相同.(类似地,0x10是16,0x18是24,依此类推.)
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |