Что такое org, и вопросы по нему?
Когда компилятор превращает команды (и данные) в бинарный код, он вычисляет смещения команд и данных от начала сегмента. По умолчанию он считает, что блок загружается в самое начало сегмента и начинает счет с 0.
Например, если первая команда занимает 3 байта, вторая - 2, третья - 4, то смещение первых четырех в сегменте кода будет [0, 3, 5, 9] соответственно.
Директива ORG увеличивает этот виртуальный счетчик на то значение. которое указано в ней.
Самый простой пример: для COM-файлов сегмент кода загружается в ОЗУ не со смещения 0, а со смещения 256 от начала сегмента, выделенного программе. Соответственно, при написании COM-файла, нужно сегмент кода предварять ORG 256, чтобы он понимал, что позиции команд (из примера выше) в сегменте при запуске программы будут - [256, 259, 261, 265].
По первым пунктам уже ответили.сколько и чего между org 500 org 600,org 700?
Если это сегмент кода .TEXT или инициализированных данных .DATA, то транслятор генерирует нули или 0x90 (т.е. NOP) в соответствующем месте бинарника, который ляжет в память по этим адресам.
Если это сегмент .BSS (неинициализированные данные), то это просто некое место в памяти, куда не загружается ничего при загрузке программы.
Если это обычный исполнимый файл под ОС (например *.EXE), то за содержимое этой области отвечает ОС. Linux, например, выдает всегда очищенные страницы (заполненные нулем). Windows тоже.
Если это сам загрузчик ОС, то перед его загрузкой никто почистить память не может, поэтому он должен делать это сам.При загрузке с диска, винчестера, дискеты в реальном времени вся доступная ОЗУ память чистая можно использовать?
В реальном режиме x86 адресное пространство в пределах (единственно доступного) первого мегабайта строго разграничено и используется для множества различных структур данных BIOS, для проброса доступа к видеопамяти, к ROM самого BIOS и других железяк.
Сейчас сходу не найду ссылку на подробную карту адресного пространства в реальном режиме.
Для начала можно глянуть сюда.Тут поподробнее.
Как видно, доступное для ОС пространство лежит от 0070:0000 до A000:0000.