Почему начальные адреса в ОП, на которые загружается программа, одинаковы на всех компьютерах? - Assembler

Узнай цену своей работы

Формулировка задачи:

Т.е. есть некая программа. Есть адрес в ОП, например 0xE123F456. Скомпилированный исполняемый файл программы на конкретном компьютере начинает загружаться, начиная с этого адреса. На другом компьютере начальный адрес будет тем же самым. Но, допустим, программ на компьютере очень много. Теоретически, их может быть больше, чем число адресов в ОП. Получается, на всех программ начальных адресов не хватит? А как тогда будут загружаться ДВЕ программы, имеющие один и тот же начальный адрес? Т.е. вторая загрузится лишь после того, как будет выгружена первая программа и будет освобожден начальный адрес загрузки?

Решение задачи: «Почему начальные адреса в ОП, на которые загружается программа, одинаковы на всех компьютерах?»

textual
Листинг программы
File: PETools.exe
Size: 435*200
Type: PE
Base Of Code: 00001000, Code Size: 00000000
Base Of Data: 00001000, Data Size: 0006A000
Image Base: 00400000
Entry Point: 0042BC3E

Sections:

   Name   | VirtAddr | VirtSize |  Offset  | PhysSize |  Flags   | Code
----------+----------+----------+----------+----------+----------+------
 .data    | 00401000 | 0003B5E8 | 00000400 | 0003B600 | C0000040 | Yes
 .rsrc    | 0043D000 | 0002E8B8 | 0003BA00 | 0002EA00 | 40000040 |  

* Entry Point (от сюда начинается код):
--------------
0042BC3E: 55                   push  ebp
0042BC3F: 8BEC                 mov   ebp, esp
0042BC41: 6AFF                 push  FFFFFFFF
0042BC43: 68E8874000           push  004087E8
0042BC48: 686CB24200           push  0042B26C
0042BC4D: 64A100000000         mov   eax, fs:[00000000]
0042BC53: 50                   push  eax
0042BC54: 64892500000000       mov   fs:[00000000], esp
0042BC5B: 83EC58               sub   esp, 00000058
0042BC5E: 53                   push  ebx
0042BC5F: 56                   push  esi
0042BC60: 57                   push  edi
0042BC61: 8965E8               mov   [ebp-18], esp
0042BC64: FF154C124000         call  KERNEL32.GetVersion
............

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы