- •Организация эвм и систем
- •Глава 1 эвм общего назначения
- •Структура эвм общего назначения.
- •Арифметико-логические устройства.
- •Устройства управления.
- •Risc и cisc процессоры.
- •1.5 Форматы машинных команд.
- •Inc byte ptr [40h] – одноадресная
- •Способы адресации.
- •Стековая адресация. Виды стеков.
- •Глава 2
- •2.1 Микропроцессор к1810вм86.
- •2.2 Назначение входов/выходов вм86 в минимальном режиме.
- •2.3 Назначение входов/выходов вм86 в максимальном режиме.
- •Внутренняя архитектура мп вм86.
- •Сегментация памяти.
- •2.6 Программная модель мп вм86.
- •2.7 Организация оперативной памяти.
- •2.8 Организация адресного пространства портов ву.
- •2.9 Методы обмена информацией между мп и портами ву.
- •2.10 Параллельный программируемый адаптер к1810вв55 (i8255).
- •Пример использования и программирования адаптера
- •2.12 Программируемый таймер к1810ви54 (i8254).
- •2.13 Пример использования таймера.
- •2.14 Обработка прерываний.
- •2.15 Система прерываний вм86.
- •2.16 Контроллер прерываний к1810вн59 (i8259).
- •Дополнительная информация о настройке вн59.
- •Прямой доступ к памяти.
- •Программирование кпдп вт37
- •2.21 Организация процессорного модуля вм86.
- •2.20. Организация шинного интерфейса в максимальном режиме
- •2.23. Слабо связанные конфигурации.
- •2.24. Арбитр шин к1810вб89 (i8289).
- •2.25 Сильно связанные конфигурации на примере совместной работы мп86 и арифметического сопроцессора вм87.
- •2.26. Формат машинной команды вм86.
2.26. Формат машинной команды вм86.
Машинная команда микропроцессора 8086 имеет формат, приведенный на рис. 40.
Рис. 40
Префикс – это байт, идущий перед командой и несколько меняющий ее смысл. Для МП 8086 допустимы: префикс блокировки, префикс замены сегмента и префикс повторения. В большинстве команд префиксы отсутствуют, однако, в команде могут использоваться и все три префикса одновременно. Префикс блокировки (lock) имеет значение 11110000. Префикс замены сегмента имеет формат 011sr110. Здесь поле sr задает сегментный регистр, который используется в команде (табл.6). Префикс повторения (rep) имеет значение 11110011 (или в еще одном варианте 11110010).
Таблица 6.
11110010).
Поле КОП – единственное из полей, которое всегда присутствует в команде. Занимает это поле, в зависимости от команды, один или два байта. Младший бит этого поля (w) в большинстве случаев задает разрядность операции. При w=0 команда работает с байтом, при w=1 – со словом.
Постбайт либо в команде отсутствует, либо занимает один байт. Это поле задает регистры, которые принимают участие в формировании адресов операндов. Формат постбайта приведен на рис.41.
Рис. 41
Поле reg (регистр) задает регистр в двухоперандных командах (табл. 7). Аналогично трактуется поле rm (регистр/память) при md=11 (mode – «режим»). При других значениях md, поле rm задает способ формирования адреса памяти (табл. 8).
Поле disp (dispersion – «смещение») задает смещение при базовой адресации (или адрес при прямой адресации) и может занимать 0, 1 или 2 байта.
Поле data («операнд») присутствует, если в команде используется непосредственная адресация.
Таблица 7.
Таблица 8.
Например, команда lock add cs: [bp+ di+100h], 77h имеет шестнадцатеричное представление: F0 2E 80 83 0010 77 ( F0 – младший байт в ОП). Здесь F0 – префикс блокировки (lock), 2E –префикс замены сегмента (cs: ), 80 – код команды (операции) (add), 83 – постбайт (задает способ формирования адреса: bp+di+disp), 0010 – смещение (100h) и 77 – непосредственный операнд.