Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 50

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 44 45 46 47 48 49 < 50 > 51 52 53 54 55 56 .. 528 >> Следующая

LGS г16, т16:16 г32, т16:32 т16 -" GS, т16 -> г16 т16 -> GS, т32 -"г32
LSS г16, т16:16 г32, т16:32 т16 -> SS, т16 -> г16 т16 -" SS, т32 -" г32
Команда пересылки MOV имеет ряд модификаций, основная из которых MOV
r/m,m, MOV m,r/m - выполняет передачу данных (регистр-регистр) или
(регистр-память) между регистрами общего назначения и ячейками памяти.
Модификация MOV A,m, MOV m,A, которая реализует загрузку или сохранение в
памяти содержимого аккумулятора, имеет сокращенный формат (отсутствуют
байты адресации MODR/M, SIB). При этом в команде задается относительный
16- или 32-разрядный адрес операнда сП6 или d32 в адресуемом сегменте
данных, т. е. используется только прямая адресация памяти. Модификация
MOV r/m.im производит запись в регистр или ячейку памяти непосредственно
заданного операнда. Пересылки с участием управляющих регистров CR4-CR0
или регистров отладки DR7-DR0 (команды MOV CRi,г, MOV г,CRi, MOV DRi,г,
MOV г,DRi) выполняются только в защищенном режиме программами, имеющими
высший уровень привилегии 0. Они не реализуются в режиме виртуального
8086. В качестве регистра /"должен использоваться один из 32-разрядных
регистров общего назначения.
В процессорах семейства Р6 введены команды условной пересылки CMOVcc. Эти
команды производят передачу данных только в случае выполнения
определенного условия (сс), которое задается различными значениями
признаков, установленных в регистре EFLAGS. Вид проверяемого условия
указывается с помощью суффикса сс, вводимого в мнемокод команды:
например, CMOVZ - пересылка, если значение признака ZF = 1. Виды условий
и соответствующие суффиксы сс в командах CMOVcc аналогичны используемым в
командах условных переходов Jcc, которые рассмотрены в п. 2.3.1 (см.
табл. 2.22).
Две модификации команды XCHG обеспечивают обмен содержимым (регистр-
регистр или регистр-память). В обмене могут участвовать только регистры
общего назначения.
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
Модификация XCHG А,г, реализующая обмен (аккумулятор-регистр), имеет
сокращенный формат команды (без байтов адресации MODR/M, SIB).
Команды PUSH, POP производят запись в стек или извлечение из стека 16-
или 32-раз-рядных операндов. В стек может быть загружено содержимое
регистра, ячейки памяти или непосредственный операнд im. При извлечении
из стека данные могут поступать в регистр общего назначения, ячейку
памяти или указанный в команде сегментный регистр sreg. Адресация стека
производится с помощью регистра ESP (или SP), который содержит
относительный адрес последней заполненной ячейки памяти в сегменте стека
SS. При выполнении команды PUSH содержимое ESP (или SP) уменьшается на 4
(или на 2), адресуя выше расположенную (незаполненную) ячейку стека,
которая становится его новой вершиной. Эта ячейка затем заполняется
поступающими данными. При выполнении команды POP производится выборка
данных из ячейки стека, адресуемой содержимым регистра ESP (или SP).
После выборки содержимое этого регистра увеличивается на 4 (или 2),
адресуя ниже расположенную заполненную ячейку стека, которая становится
его новой вершиной.
Команды PUSHA, PUSHAD и РОРА, POPAD выполняют запись в стек и извлечение
из него всех восьми регистров общего назначения. При этом последовательно
заполняются или освобождаются восемь 16- или 32-разрядных ячеек стека.
Соответственно содержимое регистра ESP (или SP) уменьшается или
увеличивается на 32 (9 или 16). Команды PUSHA, РОРА оперируют с 16-
разрядными регистрами АХ, СХ, DX, ВХ, SP, ВР, SI, DI, команды PUSHAD,
РОРАО-с32-разрядными регистрами ЕАХ, ЕСХ, EDX, ЕВХ, ESP, EBP, ESI, EDI.
При выполнении команд ввода-вывода IN, OUT производится пересылка данных
между аккумулятором ЕАХ (АХ или AL) и адресуемым портом. Адрес порта
может задаваться непосредственно операндом im8 (фиксированный порт) или
содержимым регистра DX (изменяемый порт). При работе процессора с 8-
разрядными портами возможно обращение к 256 портам, адреса которых
фиксированы в программе, или к 65536 портам, адреса которых могут
изменяться путем перезагрузки содержимого регистра DX. При работе с 16-
разрядными портами число адресуемых портов уменьшается вдвое, а их
нумерация (адресация) должна производиться четными числами: 0, 2, 4...254
- для фиксированных портов; 0,2,4...65532, 65534-для изменяемых портов.
Соответственно для 32-разрядных портов их число сокращается еще вдвое, а
нумерация производится числами, кратными четырем: 0,4,8,...248,
252,...65528, 655332. Таким образом, номера портов должны быть выравнены
по границам передаваемых данных согласно их разрядности: 1,2 или 4 байта.
В этом случае пересылка осуществляется за один цикл. Если заданный в
команде номер 16- или 32-разрядного порта имеет невыравненное значение,
например 03h, то для передачи данных требуется дополнительный цикл.
Отметим, что номера портов от 00F8h до OOFFh зарезервированы фирмой
"Intel" для внутреннего использования. Во избежание возможных сбоев в
Предыдущая << 1 .. 44 45 46 47 48 49 < 50 > 51 52 53 54 55 56 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed