2010-11-18 73 views
1

我对此感到困惑 - 请任何人告诉我它是如何工作的?使用Ptr运算符?

array db 10,20,30,40 

mov eax,DWORD PTR array ;eax should contains 40302010 (in Little endian.) 

但这是不工作在我的电脑/系统。请任何人都可以帮助我 - 为什么会这样?在我的程序中它包含一些垃圾值。请帮帮我。

+0

IIUC,PTR不是运算符,DWORD PTR是限定符,[]是运算符。 – ninjalj 2010-11-18 20:42:03

回答

2

您的eax包含$ 281E140A。十六进制$ 28,$ 1E,$ 14和$ 0A对应于您声明的元素。对于它来说$ 40302010,您的阵列需要为:

array db $10,$20,$30,$40 
+0

请告诉我什么是$符号实际上我正在使用MASM611所以它给了我错误$是未申报的符号或未定义的符号请详细说明它..... – 2010-11-18 20:02:07

+0

表示一个十六进制数字。尝试**数组db 0x10,0x20,0x30,0x40 **。 – 2010-11-18 20:07:41

+0

or ** array db 010h,020h,030h,040h ** – 2010-11-18 20:16:26