русс | укр

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

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

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

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


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

Отличия от ЦПУ 8086.


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


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

  1. Подсчет числа тактов на выполнение команды.
    Процессор i486 требует для выполнения большинства команд меньше машинных тактов чем процессор 8086.

Это может иметь негативное действие в случаях:

    • Управления устройствами ввода/вывода, которым необходима задержка между операциями ввода/вывода.
    • При отработке запланированных задержек в программах, использующих параллельную работу процесора 8086 и сопроцессора 8087.
  1. Исключения ошибки деления указывают на команду DIV.
    Исключения ошибки деления на процессоре i486 всегда сохраняет значение CS:IP, указывающее на ошибочную команду. А на процессоре 8086 CS:IP указывает на следующую команду.
  2. Коды операций, неопределенные для процессора 8086.
    Коды операций, которые не определены для процессора 8086, генерируют исключение неопределенного кода операции или выполняют одну из новых команд, введенных на процессорах 80286, 386 DX или i486.
  3. Значения записываемые командой PUSH SP.
    При команде 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 маскирует в счетчиках всeх линейных и циклических сдвигов все биты кроме младших пяти. Эта операция 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. Семь новых векторов прерываний.
    В процессоре i486 добавлено семь исключений, которые в процессоре 8086 генерировались только как программные ошибки. Должны быть добавлены программы обработки исключений, которые трактуют эти исключения как неправильные операции. Эти дополнительные программы не влияют существенным образом на программы процессора 8086, поскольку обычно такие прерывания не возникают. Имена этих программ не могли быть включены в программное обеспечение процессора 8086, поскольку они были зарезервированны фирмой Intel(R). В Таблице 22-2 описываются новые исключения процессора i486.
19. 20. Таблица 22-2. Новые исключения центрального процессора i486(TM)21. 22. +-------------------------------------------------------------------------+23. | Вектор | Описание |24. +------------------+------------------------------------------------------|25. | 5 | Команда BOUND была выполнена с регистром, значение |26. | | которого превышает допустимое значение. |27. | | |28. | 6 | Встретился зарезервированный код операции или |29. | | использование префикса LOCK. |30. | | |31. | 7 | При выполнении команды ESC был установлен бит EM |32. | | в регистре CR0, или при выполнении команды WAIT |33. | | был установлен бит ТS. |34. | | |35. | 8 | Номера векторов на входе в IDT выходят за границу |36. | | сегмента. Это случается, когда граница, |37. | | установленная по умолчанию, была изменена. |38. | | |39. | 12 | Операции над стеком, приводящие к выходу за границу |40. | | адресов. |41. | | |42. | 13 | Операции (не операции со стеком), превышающие базу |43. | | или границу сегмента, команды,при выполнении которых,|44. | | произошел выход за границу адресов (0FFFFH), или |45. | | команды превышающие 15 байт. |46. | | |47. | 17 | Проверка выравнивания. Не происходит без предварите- |48. | | льной установки зарезервированных битов. |49. +-------------------------------------------------------------------------+50.
  1. На процессоре i486 исключение денормализованного числа обрабатывается по другому, чем на математическом сопроцессоре 8087. Смотрите Раздел 16.2.4 для более детального ознакомления.
  2. Циклический возврат через один мегабайт.
    Адресное пространство процессора i486 не может иметь циклический возврат через один мегобайт в режиме реальных адресов. Если циклический сдвиг запрещен, его можно провести с помощью внешнего сигнала A20M#. Например, при значении селектора 0FFFFH и смещении 0FFFFH исполнительный адрес будет 10FFEFH (1 мегабайт + 65.519 байт). Процессор 8086, который формирует адреса длинной до 20 бит обрезает самый старший бит, который "сдвигает" этот адрес на 0FFEFH. Однако, процессор i486 не обрезает этот бит если A20М# не блокирован.
  3. Отклик на запрос передачи данных по шине.
    В отличие от процессоров 8086 и 80286 и аналогично процессорам 386 процессор i486 отвечает на запрос управления шиной от других возможных ее владельцев таких, как контроллеры DMA, между пересылками частей невыровненного операнда, например двух слов, образующих двойное слово. В отличие от процессоров 386 процессор i486 реагирует на запрос передачи данных по шине во время инициализации после сброса.
  4. Граница таблицы векторов прерывания.
    Команду LIDT можно использовать для установки границы размера таблицы векторов прерывания. Если прерывание или исключение попытается прочесть вектор за границей, произойдет закрытие системы. (У процессора 8086 нет режима закрытия системы).
  5. Если операция над стеком произведет циклический сдвиг границы адреса, то произойдет закрытие системы. (У процессора 8086 нет режима закрытия системы).


<== предыдущая лекция | следующая лекция ==>
Исключения режима реальных адресов | Блокирование шины.


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


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

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

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


 


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

 
 

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

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