русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Отличия от центрального процессора 8086.


Дата добавления: 2015-06-12; просмотров: 817; Нарушение авторских прав


В основном, в виртуальном режиме процессора 8086 будут выполняться программы, написанные для процессоров 8086, 8088, 80186 и 80188. Ниже приведен список незначительных различий между программами, выполняемыми на процессоре 8086 и на процессоре i486 в виртуальном режиме процессора 8086.

  1. Подсчет числа тактов на выполнение команды.
    Процессор i486 требует для выполнения большинства команд меньше машинных тактов чем процессор 8086. Это может иметь негативное действие в случаях:
    • Управления устройствами ввода/вывода, которым необходима задержка между операциями ввода/вывода.
    • При отработке запланированных задержек в программах, использующих параллельную работу процесора 8086 и сопроцессора 8087.
  2. Исключение ошибки деления указывает на команду DIV.
    Исключение ошибки деления на процессоре i486 всегда сохраняет значение CS:IP, указывающее на ошибочную команду. А на процессоре 8086 CS:IP указывает на следующую команду.
  3. Коды операций, неопределенные для процессора 8086.
    Коды операций, которые не определены для процессора 8086, генерируют исключение неопределенного кода операции или выполняют одну из новых команд, определенных для процессора i486.
  4. Значения, записываемые командой PUSH SP.
    По данной команде, процессор i486 помещает в стек другое значение, нежели процессор 8086. Процессор i486 заносит значение регистра SP перед его уменьшением, как части операции занесения; процессор 8086 заносит значение регистра SP после его уменьшения. Если занесенное значение важно, замените команду PUSH SP на последовательность из трех команд:
5. PUSH BP MOV BP, SP XCHG BP, [BP]

Эта программа функционирует на процессоре i486 аналогично команде PUSH SP процессора 8086.

  1. Сдвиг или циклический сдвиг более чем на 31 бит.
    Процессор i486 маскирует в счетчиках всех линейных и циклических сдвигов все биты, кроме младших пяти. Эта операция MOD 32 ограничивает величину сдвигов 31 битом и, следовательно, ограничивает задержку отклика на прерывание, ожидающее окончания выполнения команды.
  2. Префиксы удлинения.
    В процессоре i486 установлено ограничение в 15 байт на длину команды. Единственный путь преодоления этого ограничения - использование перед командой префиксов удлинения. Если ограничение нарушено, генерируется исключение общей защиты. На процессоре 8086 нет ограничений на длину команд.
  3. Операнд с относительным адресом 0 или превысившим 65.535.
    В процессоре 8086 попытка обращения к операнду в памяти с пересечением относительного адреса 65.535 ( например, пересылка слова командой MOV по относительному адресу 65.535) или относительного адреса 0 (например, занесение в стек слова командой PUSH, когда SP = 1) приводит к циклическому возврату относительного адреса по модулю 65.536. Процессор i486 в этих случаях генерирует исключения: исключение общей защиты, если сегмент является сегментом данных (т.е. для адресации сегмента будут использованы регистры CS, DS, ES, FS или GS ) или исключение стека, если сегмент является сегментом стека (т.е. если будет использован регистр SS).
  4. Переход через относительный адрес 65.535 при последовательном выполнении.
    В процессоре 8086, если произошел переход через относительный адрес 65.535 при последовательном выполнении команд, произойдет выборка байта следующей команды по относительному адресу 0 того же сегмента. Процессор i486 в этом случае генерирует исключение общей защиты.
  5. Ограничения LOCK на определенных командах.
    Префикс LOCK и соответствующий ему сигнал шины следует использовать только для предотвращения прерываний операций пересылки данных другими хозяевами шины. Префикс LOCK можно использовать только с нижеперечисленными командами процессора i486, когда они модифицируют память. Исключение неопределенного кода операции будет результатом использования префикса LOCK перед любыми другими командами или с командами, перечисляемыми ниже, когда они не выполняют операцию записи, изменяющую память.
    • Команды проверки и изменения битов BTS, BTR и BTC.
    • Команды обмена XCHG, XADD, и CMPXCHG (префикс LOCK не нужен для команды XCHG ).
    • Oднооперандные арифметические и логические команды INC, DEC, NOT, NEG.
    • Двухоперандные арифметические и логические команды ADD, ADC, SUB, SBB, AND, OR , XOR.
  6. Пошаговые программы обработки внешних прерываний.
    Приоритетность пошаговых исключений в процессоре i486 отличается от приоритетности исключений в процессоре 8086. Внесенное изменение предупреждает обработку внешнего прерывания пошаговым образом в случае, когда прерывание возникло в пошаговой программе. В процессоре i486 пошаговое исключение имеет приоритет выше, чем любое внешнее прерывание. С помощью команды INT или исключения можно заставить работать процессор i486 пошагово по программе обработки прерываний.
  7. Исключения команды IDIV для частных 80H или 8000H.
    Процессор i486 генерирует максимальное отрицательное число в качестве частного для команды IDIV. Процессор 8086 вместо этого генерирует исключение ошибка деления.
  8. Флаги в стеке.
    Установка сохраненых флагов командой PUSHF, прерываниями и исключениями отличается от их установки на процессоре 8086 в позициях с 12 по 15 бит. Процессор 8086 записывает в них 1. В процессоре i486 в режиме реальных адресов бит 15 это всегда 0, а в битах от 14 до 12 сохраняются предыдущие значения.
  9. Обработка прерывания NMI.
    После получения процессором i486 информации о прерывании NMI, прерывание NMI маскируется на время выполнения команды IRET.
  10. Ошибки вычислений с плавающей точкой вызывают исключение ошибки вычислений с плавающей точкой.
    В процессоре i486 исключения вычислений с плавающей точкой вызывают программу обработки исключения ошибки вычислений с плавающей точкой. Если на процессоре 8086 использовалось другое исключение для прерывания сопроцессора 8087, то оба вектора исключения должны вызывать программу обработчика исключения ошибки вычислений с плавающей точкой. Процессор i486 выдает сигналы, которые, с добавлением внешней логики, поддерживают определенные пользователем сообщения об ошибках для эмуляции механизма прерываний, используемого в большинстве персональных компьютеров.
  11. Программы обработки числовых исключений могут допускать префиксы.
    В процессоре i486 значение регистров CS и IP, сохраненное для обработки исключений вычислений с плавающей точкой, указывает на любые префиксы перед командой ESC. В процессоре 8086 сохраненное значение CS:IP указывает на саму команду ESC.
  12. Модуль операций с плавающей точкой не использует контроллер прерываний.
    Сигнал ошибки вычислений с плавающей точкой процессора i486 не проходит через контроллер прерываний ( сигнал INT сопроцессора 8087 использует контроллер прерываний). Может потребоваться удаление некоторых команд в программе обработки исключения ошибка вычислений с плавающей точкой, если используется контроллер прерываний. Процессор i486 выдает сигналы, которые, с добавлением внешней логики, поддерживают определенные пользователем сообщения об ошибках для эмуляции механизма прерываний, используемого в большинстве персональных компьютеров.
  13. Отклик на запрос передачи данных по шине.
    В отличие от процессоров 8086 и 80286 и аналогично процессорам 386 процессор i486 отвечает на запрос управления шиной от других возможных ее владельцев, таких как контроллеры DMA, между пересылками частей невыровненного операнда, например двух слов, образующих двойное слово.
  14. CPL равно 3 в виртуальном режиме процессора 8086.
    Процессор 8086 не поддерживал защиту, так как на нем не было CPL. Виртуальный режим процессора 8086 использует CPL равное 3, что исключает выполнение привилегированных команд таких как:
    • команда LIDT
    • команда LGDT
    • команда LMSW
    • специальные формы команды MOV, для загрузки и сохранения регистров управления
    • команда CLTS
    • команда HLT
    • команда INVD
    • команда WBINVD
    • команда INVLPG

Эти команды могут выполняться, пока процессор находится в режиме реальных адресов после инициализации при перезапуске. Они позволяют загружать структуры системных данных, такие как таблицы дескрипторов перед входом в защищенный режим. Вход в виртуальный режим происходит из защищенного режима, поэтому он не нуждается в этих командах.



  1. Денормализованное число обрабатывается по-другому.
    Смотрите Раздел 16.2.4 для более детального ознакомления.


<== предыдущая лекция | следующая лекция ==>
Отображение ввода/вывода в пространство памяти | Блокирование шины


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.164 сек.