Assume
От: Alex16  
Дата: 07.07.11 13:47
Оценка:
Здравствуйте!
У меня вопрос: никак не могу понять, зачем в принципе нужна директива Assume в ассемблерах. Везде к книжках пишут, что мол эта директива дает знать ассемблеру о том, какие сегменты нашей программы в каких сегментных регистрах будут. Но это все не ответ.
Я не много разобрался в том, как выглядят com и exe программы в машинных кодах, как правятся адреса сегментов с помощью таблицы замены в ехе программах, как устанавливаются значения сегментных регистров загрузчиком, и хочу сказать, что я так и не понимаю, что с этой директивой делает компилятор и линковщик. В чем ее смысл.
В com программах все сегментные регистры устанавливаются на начало psp. Мы в ней работаем только со смещениями! Зачем ассеблеру нужно знать что там у нас в сегментых регистрах? )
Вопрос к тем, кто знает машинные коды)) Приведите пожалуйста пример с директивой assume и покажите что без нее линковщик ну ни как не сможет слинковать программу ) Не то что там, ему будет тяжело, а просто не сможет)
Потому что у меня простая com программа требует чтобы я обязательно задал assume cs:CSEG. Без этого видите ли не компилируется)
masm assume
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.