; int __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd)
[email protected] proc near
var_4= dword ptr -4
hInstance= dword ptr 4
hPrevInstance= dword ptr 8
lpCmdLine= dword ptr 0Ch
nShowCmd= dword ptr 10h
从我可以看到,最后4个变量是传递给WinMain函数的参数。另外,var_4必须是我在函数体中稍后声明的int变量。现在,我有几个问题:简单的组装问题
a)在32位Windows程序中,单词的大小是多少? 4字节?作为一个dword 8?
b)为什么var_4设置为-4?为什么不开始,比方说,0?
C)一种在C定义整数标准程序是虽然
var_x = DWORD PTR Y'
谢谢
感谢您的回答。但我将我的变量定义为int。它如何显示为无符号的32位变量?或者,这只是意味着它是一个指针(显然是一个无符号整型?) – 2009-09-08 17:06:04
这些只是宏定义,以帮助使组件清晰。它们是偏移量w.r.t.到帧指针。 – user7116 2009-09-08 17:08:42
@devoured elysium ASM中的有符号和无符号数据没有区别。他们只是32位。不同之处在于你使用什么指令来操作它们。 – 2009-09-08 17:12:49