Visual studio 将变量从数组移到寄存器中

Visual studio 将变量从数组移到寄存器中,visual-studio,assembly,masm,Visual Studio,Assembly,Masm,我试图学习汇编语言,并编写了一个简单的程序,它定义了一个arr,带有 三个相等的值,我想把第二个值复制到reister eax中。 当我使用语句mov eax,[arr]时,代码工作并编译为第一个值,它在寄存器中给出结果Ah。但当我尝试将数组的第二个值复制到寄存器eax时,它不起作用: mov eax,[arr+1],它给出值0a00000h。 函数DumpRegs只是在命令promt中显示寄存器值,我没有这方面的源代码。(但它来自一个好的来源,一个图书网站) 代码: 它是用visual stu

我试图学习汇编语言,并编写了一个简单的程序,它定义了一个arr,带有 三个相等的值,我想把第二个值复制到reister eax中。 当我使用语句
mov eax,[arr]
时,代码工作并编译为第一个值,它在寄存器中给出结果Ah。但当我尝试将数组的第二个值复制到寄存器eax时,它不起作用:
mov eax,[arr+1]
,它给出值0a00000h。 函数
DumpRegs
只是在命令promt中显示寄存器值,我没有这方面的源代码。(但它来自一个好的来源,一个图书网站)

代码:


它是用visual studio中的masm编写的。

eax是32位的,因此我必须将指针移动4个字节到下一个元素
mov eax,[arr+4]
好的,我想我发现了需要添加4的错误。
ExitProcess PROTO,dwExitCode:DWORD
DumpRegs PROTO
.data
    arr DWORD 10,10,10
.code
main PROC
    mov eax, [arr+1];
    call    DumpRegs
    INVOKE ExitProcess,0
main ENDP
END main