0x00400000
Here is a display of memory showing part of the first subroutine and the start of the data section. The address of the subroutine is circled in red. The data section contains that address followed by the address of the second subroutine.
The assembler and loader put all strings in memory in the data section. Note that the strings of the subroutines are not stored with the code of the subroutines. The subroutines are put in memory in the text section.
The symbolic address sub1
stands for the value 0x00400000
,
the entry point of the first subroutine.
This address is shown in the first red circle.
The symbolic address sub1add
stands for an address
in the data section.
The value that is stored at that address
is the value 0x00400000
, the entry point of the first subroutine.
This value is shown in the second red circle.
What is the address of the second subroutine? (Hint: look at the program and at the above memory dump.)