Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Регистр флагов

1.2K
02 октября 2007 года
piroman17
175 / / 20.07.2006
Вопрос такой:
В TSS надо занести началный EFLAGS, какова его структура? Какие биты у него являюсться IOPL? Где какие флаги?
3.7K
02 октября 2007 года
_lobster_
115 / / 10.04.2005
Если ты про TSS то вот http://www.sasm.narod.ru/docs/pm/pm_tss/chap_3.htm. А если про EFLAGS, то открой любой учебник по Асму, а лучше сходи сюда http://wasm.ru
1.2K
02 октября 2007 года
piroman17
175 / / 20.07.2006
Я про Efalgs, вот в моём учебнике про него ни слова :( . Посоветуй какой скачать, чтоб там точно по EFLAGS было?

Вот туть вопоса: чему должен быть равен EFLAGS - для новой задачи чтоб IOPL был равен 01b
261
02 октября 2007 года
ahilles
1.5K / / 03.11.2005
если тебе нужна схема EFLAGS, то пожалуйста
1.6K
02 октября 2007 года
Vov4ick
476 / / 01.02.2007
Вот здесь есть книжки хорошие: http://www.frolov-lib.ru/
Также почитай BrokenSword'а
Вообще начни наконец пользоваться поисковиками, а не беспокоить народ по простейшим вопросам, ответы на которые в инете есть чуть ли не на каждом сайте по теме.
1.2K
02 октября 2007 года
piroman17
175 / / 20.07.2006
Цитата: Vov4ick

Вообще начни наконец пользоваться поисковиками, а не беспокоить народ по простейшим вопросам, ответы на которые в инете есть чуть ли не на каждом сайте по теме.



Всё равно придётся задать ещё вопрос: как, например, в eax поместить EFLAGS? Команда pushf - пихает в стек весь EFLAGS (4 байта)?

261
03 октября 2007 года
ahilles
1.5K / / 03.11.2005
Цитата: piroman17
в eax поместить EFLAGS?


 
Код:
pushfd
pop eax


Цитата: piroman17
Команда pushf - пихает в стек весь EFLAGS (4 байта)?


команды pushf и pushfd имеют одинаковый опкод.
команда pushf в защищённом режиме пихает в стек младшие все 4 байта регистра флагов. Если хочешь, то используй pushfd (по барабану).

1.6K
03 октября 2007 года
Vov4ick
476 / / 01.02.2007
Зависит не от режима процессора, а от настройки дескриптора сегмента. Соответственно для желаемого результата нужно писать use16 или use32 чтобы ассемблер добавлял или не добавлял префикс 16 или 32 разрядного операнда.
261
04 октября 2007 года
ahilles
1.5K / / 03.11.2005
согласно мануалам от Intel и от AMD команды pushf, pushfd и pushfq (64 битный режим) имеют опкод $9С. и наверно по барабану что использовать use16 или use32
1.6K
04 октября 2007 года
Vov4ick
476 / / 01.02.2007
Объясняю. Так как команды имеют одинаковый опкод, ясное дело, что при прочих равных условиях опкод сработает в зависимости от настройки описателя сегмента.
Представим теперь, что сегмент 16-разрядный, но архитектура машины 32-х разрядная и нам надо обратиться к 32-разрядному регистру, что эта самая архитектура позволяет. Такая ситуация встречается очень часто. Для этого перед командой обращения к регистру ставится префикс изменения размера операнда на 32-х разрядный и процессор выполняет то, что мы хотим. Аналогично в 32 и 64 разрядном сегментах.
Ассемблер же не может знать, какая адресация в нашем сегменте и соответственно не знает, нужно ставить префикс изменения разрядности или нет. Поэтому для правильного ассемблирования необходимо указать ято явно спецификатором use16, use32 или use64.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог