Дела такие:
Создаю в модуле две разные модели - small и tiny.Слежу за сегмент.регистрами : в первом случае (small) прослеживается два сегмента - cs указан на один,ds - на другой. во втром случае сегмент один (cs и ds -> оба на сег.кода).
Все бы ничего..только,когда я вставляю директиву процессора (.286) - ни small ни timy не отличаются! - ds и cs упрямо указывают на один сегмент!
Почему??? как этого избежать, если мне нужно указывать интерпретацию кода определенным процессором.
[asm]TASM.Упрощенные дир-вы опред-ия сегм-тов.Фокус с сегментами.22.09.03 09:56 Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
> Дела такие: > Создаю в модуле две разные модели - small и tiny.Слежу за > сегмент.регистрами : в первом случае (small) прослеживается > два сегмента - cs указан на один,ds - на другой. во втром > случае сегмент один (cs и ds -> оба на сег.кода). > Все бы ничего..только,когда я вставляю директиву процессора > (.286) - ни small ни timy не отличаются! - ds и cs упрямо > указывают на один сегмент! > Почему??? как этого избежать, если мне нужно указывать > интерпретацию кода определенным процессором. А что без .286 программа работать не желает?
Эта директива нужна только чтобы транслятор не ругнулся на popa и pusha.
Больше 80086 от 80286 ничем не отличеются.
Может директива определения типа процессора перебивает модель. Этого не должно быть, если только ошибка в трансляторе.
В крайнем случае модель можно не указывать. Пишите "assume cs:cseg, ds:dseg".