Почему начальные адреса в ОП, на которые загружается программа, одинаковы на всех компьютерах? - 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 ............
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д