Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как ДОС передает адреса сегментов? Откуда асм знает, куда дос разместит... 
:(
    Опции темы
Sail Destiny
  Дата 7.7.2002, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 7.7.2002

Репутация: нет
Всего: нет



Каждый раз, когда пишу строки
mov ax,datseg
mov ds,ax
не совсем понимаю смысл первой  :angry:
Что в машинном коде из себя представляет "datseg": это операнд в памяти или непосредственный операнд? :satisfied
Если непосредственный, то откуда асм знает, с какого параграфа физически дос разместит сегмент данных? ???
Если это операнд в памяти, тогда, что ли есть какой-то _стандартный_ адрес, по которому после загрузки дос передает адреса всех сегментов? Или как? ???

P.S. А не этот ли процесс называют "настройка адресов"?  ???
PM MAIL   Вверх
Chingachguk
Дата 8.7.2002, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Конечно, это непосредственный операнд. Программа типа *.exe является перемещаемой (те не жестко привязанной к памяти) - в том смысле, что ее можно (что и делает дос) загружать начиная с любого сегмента. Чем это достигается ? Подразумевается, что есть некий набор сегментов seg1,seg2...segN. Компиллятор, естественно, не знает где в памяти окажется seg1, Но знает относительный адрес seg2 относительно seg1... segN относительно seg1. Так что команда mov ax, seg MySeg в исполнимом файле выглядит как mov ax, относительный адрес сегмента MySeg. При загрузке дос модифицирует эту команду - подставляет реальный адрес сегмента.
Все это можно наглядно увидеть, если скомпиллировать простой exe с такой командой. Сначала посмотреть, что находится в файле, а потом - запустить программу в отладчике и посмотреть, как изменилась эта команда. Таблица настройки адресов дает сведения дос о числе и свойствах сегментов.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0372 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.