2016-10-23 3 views
-1

나는 어셈블러를 배우려고하고 세 개의 동일한 값을 가진 ar을 정의하는 간단한 프로그램을 작성했습니다. 두 번째 vaule을 집주인 eax에 복사하려고합니다. 코드 mov eax, [arr]을 사용하면 첫 번째 값에 대해 컴파일되고 결과가 Ah 레지스터에 저장됩니다. 그러나 배열의 두 번째 값을 레지스터 eax으로 복사하려고 시도하면 작동하지 않습니다. mov eax, [arr+1] 값을 0A000000h으로 지정합니다. 함수 DumpRegs은 promt 명령에 레지스터 값만 표시합니다. 그 소스 코드는 없습니다. (그러나 그것의 좋은 출처에서 책 웹 사이트에서).어레이에서 레지스터로 이동

코드 : Visual Studio에서 MASM로 작성

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 

그것.

+0

OK 다음 요소로 포인터 4 바이트를 이동해야합니다. – Niklas

답변

0

EAX는 32 비트, 그래서 난 내가 4를 추가 내가 필요로하는 오류를 발견 생각 mov eax, [arr+4]

관련 문제