По первым пунктам уже ответили.
сколько и чего между org 500 org 600,org 700?
Если это сегмент кода
.TEXT
или инициализированных данных
.DATA
, то транслятор генерирует нули или
0x90
(т.е.
NOP
) в соответствующем месте бинарника, который ляжет в память по этим адресам.
Если это сегмент
.BSS
(неинициализированные данные), то это просто некое место в памяти, куда не загружается ничего при загрузке программы.
Если это обычный исполнимый файл под ОС (например *.EXE), то за содержимое этой области отвечает ОС. Linux, например, выдает всегда очищенные страницы (заполненные нулем). Windows тоже.
Если это сам загрузчик ОС, то перед его загрузкой никто почистить память не может, поэтому он должен делать это сам.
При загрузке с диска, винчестера, дискеты в реальном времени вся доступная ОЗУ память чистая можно использовать?
В реальном режиме x86 адресное пространство в пределах (единственно доступного) первого мегабайта строго разграничено и используется для множества различных структур данных BIOS, для проброса доступа к видеопамяти, к ROM самого BIOS и других железяк.
Сейчас сходу не найду ссылку на подробную карту адресного пространства в реальном режиме.
Для начала можно глянуть
сюда.
Тут поподробнее.
Как видно, доступное для ОС пространство лежит от
0070:0000
до
A000:0000
.