Address Range Confusion???
Posted on 2012-03-28
Hi everyone. I am a High-level programmer trying to learn assembly language.
I wrote a simple High-level language program. It contains a sub-routine.
I compiled it and debugged its assembly language code.
I discoverd that the equivalent line in Assembler responsible of calling the subroutine is:
CALL DWORD PTR DS:[EAX+704]
Therefore, I put a breakpoint on the line, ran the program and it halts at that line.
The EAX register reads: 004032E8
This is the value that confuses me because it is well outside the typical 00401... address
range of my program.
When I step into it, I end up on the line:
00401AD8 JMP 00401F30
When I step again, it then jumps into my sub-routine at the address: 00401F30. (This second
part is understood.)
I cannot seem to relate the address: 004032E8 in the EAX register pointing to 00401AD8,
which executes the jump to my sub-routine.
Any help would be greatly appreciated. Thanks.