Поиск:

Ответ в темуСоздание новой темы Создание опроса
> что за проверка на i386, не могу понять назначение 
V
    Опции темы
null56
Дата 22.6.2012, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Всем привет

Встретил непонятный для себя фрагмент кода, поэтому решил обратиться.... Даже не фрагмент, а его назначение

Код

    asm("pushf; "
    "orl $(1<<18), (%esp); "
    "popf;");


Цель - изменить регистр флагов, но ЗАЧЕМ? Что мне это даст и как это связано с архитектурой?
Связано это как - то с выравниванием, но не могу понять как, при чем прием довольно распространенный
http://stackoverflow.com/questions/548164/...pointers-on-x86

Заранее благодарен за помощь

Добавлено через 13 минут и 36 секунд
кажется разобрался... идет включение проверки выравнивания
то есть если что - то не выровнено, то падает ексепшн?

PM MAIL   Вверх
null56
Дата 22.6.2012, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



PM MAIL   Вверх
Mikl_
Дата 4.10.2012, 06:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



null56, 
идет проверка 17-ого если считать с нулевого флага VM    (Virtual-8086 Mode    -- Режим виртуального процессора 8086), если он установлен, то мы не в реальном DOS-режиме, а в виртуальном, который процессор 80286 не поддерживал
Хотя смысл может быть и другим -- на 286 регистр FLAGS был 16-разрядным, если есть возможность воздействовать на 17 бит и выше -- значит машина 32-разрядная (386, 486, пеньки) 

Это сообщение отредактировал(а) Mikl_ - 4.10.2012, 09:13
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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