Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.305


Таненбаум Э.- Архитектура компьютера. стр.305

Отметим, что если какое-нибудь высокоскоростное устройство, например диск, будет запускаться контроллером ПДП, потребуется очень много циклов шины и для обращений к памяти, и для обращений к устройству. Во время этих циклов центральному процессору придется ждать (контроллер ПДП всегда имеет приоритет перед ЦП на доступ к шине, поскольку устройства ввода-вывода обычно не допускают задержек) — этот процесс называется захватом цикла памяти. Однако издержки, связанные с захватом циклов, не идут ни в какое сравнение с экономией, получаемой благодаря тому, что при передаче каждого байта (слова) не нужно обрабатывать прерывание.

Команды процессора Pentium 4

В этом и следующих двух подразделах мы рассмотрим наборы команд трех машин: Pentium 4, UltraSPARC III и 8051. Каждая из них поддерживает базовые команды, обычно получаемые в результате работы компиляторов, а также дополнительные команды, которые используются редко или используются исключительно операционной системой. Начнем с Pentium 4.

Команды Pentium 4 представляют собой причудливую смесь 32-разрядных команд, а также команд, появившихся еще в процессоре 8088. В табл. 5.9 приведены наиболее распространенные целочисленные команды, при этом используются следующие обозначения:

♦ SRC — источник данных;

♦ DST — приемник данных;

♦ # — количество битов, на которое происходит сдвиг;

♦ LV — количество локальных переменных.

Перечень далеко не полный, поскольку в него не вошли команды с плавающей точкой, команды управления, а также некоторые нечасто встречающиеся целочисленные команды (например, использование 8-разрядного байта для выполнения поиска по таблице). Тем не менее таблица дает представление о том, какие действия может выполнять Pentium 4.

Многие команды Pentium 4 обращаются к одному или к двум операндам, которые находятся в регистрах или памяти. Например, бинарная команда ADD складывает два операнда, а унарная команда INC увеличивает значение одного операнда на 1. Некоторые команды имеют несколько похожих вариантов. Например, команды сдвига могут сдвигать слово либо вправо, либо влево, с учетом знакового бита или без учета. Большинство команд имеют несколько различных кодировок в зависимости от природы операндов.

Таблица 5.9. Наиболее распространенные целочисленные команды процессора Pentium 4

Команда

Описание

Команды перемещения

 

MOV DST, SRC

Перемещение из SRC в DST

PUSH SRC

Помещение из SRC в стек

POP DST

Выталкивание слова из стека и помещение его в DST

XCHG DS1, DS2

Смена мест DS1 и DS2

LEA DST, SRC

Загрузка действительного адреса SRC в DST

CMOV DST, SRC

Условное перемещение

Арифметические команды

 

ADD DST, SRC

Сложение SRC и DST

SUB DST, SRC

Вычитание SRC из DST

MUL SRC

Умножение ЕАХ на SRC (без учета знака)

IMULSRC

Умножение ЕАХ на SRC (с учетом знака)

DIV SRC

Деление EDXiEAX на SRC (без учета знака)

IDV SRC

Деление EDX:EAX на SRC (с учетом знака)

ADC DST, SRC

Сложение SRC с DST и прибавление бита переноса

SBB DST, SRC

Вычитание DST и перенос из SRC

INC DST

Инкремент (прибавление 1) DST

DEC DST

Декремент (вычитание 1) DST

NEG DST

Отрицание DST (вычитание DST из 0)

Двоично-десятичные команды

DAA

Десятичная коррекция

AAA

Коррекция ASCII-кода для сложения

AAS

Коррекция ASCII-кода для вычитания

AAM

Коррекция ASCII-кода для умножения

AAD

Коррекция ASCII-кода для деления

Логические команды

 

AND DST, SRC

Логическая операция И над SRC и DST

OR DST, SRC

Логическая операция ИЛИ над SRC и DST

XOR DST, SRC

Логическая операция ИСКЛЮЧАЮЩЕЕ ИЛИ над SRC и DST

NOT DST

Замещение DST дополнением до 1

Команды обычного и циклического сдвига

SAL/SAR DST, #

Сдвиг ОБТ влево/вправо на # бит

SHL/SHR DST, #

Логический сдвиг 08Т влево/вправо на # бит

ROL/ROR DST, #

Циклический сдвиг 08Т влево/вправо на # бит

ROL/ROR DST, #

Циклический сдвиг 08Т по переносу на # бит

Команды тестирования и сравнения

TST SRC1, SRC2

Операнды логической операции И, установка флагов

Команда

Описание

CMPSRC1, SRC2

Установка флагов на основе разности SRC1 - SRC2

Команды передачи управления

JMP ADDR

Переход к адресу

Jxx ADDR

Условные переходы на основе флагов

CALL ADDR

Вызов процедуры по адресу

RET

Выход из процедуры

IRET

Выход из прерывания

LOOPxx

Продолжение цикла до выполнения определенного условия

INT ADDR

Программное прерывание

INTO

Прерывание, если установлен бит переполнения

Команды обработки строк

 

LODS

Загрузка строки

STOS

Сохранение строки

MOVS

Перемещение строки

CMPS

Сравнение двух строк

SCAS

Сканирование строки

Команды для работы с кодами условий

STC

Установка бита переноса в регистре EFLAGS

CLC

Сброс бита переноса в регистре EFLAGS

CMC

Дополнение бита переноса в регистре EFLAGS

STD

Установка бита направления в регистре EFLAGS

CLD

Сброс бита направления в регистре EFLAGS

STI

Установка бита прерывания в регистре EFLAGS

С LI

Сброс бита прерывания в регистре EFLAGS

PUSHFD

Помещение значения из регистра EFLAGS в стек

POPFD

Выталкивание значения из стека в регистр EFLAGS

LAHF

Загрузка АН из регистра EFLAGS

SAHF

Сохранение АН в регистре EFLAGS

Прочие команды

 

SWAP DST

Изменение порядка следования байтов в DST

CWQ

Расширение ЕАХ до EDX:EAX для деления

SWDE

Расширение 16-разрядного числа в АХ до ЕАХ

ENTER SIZE, LV

Создание стекового фрейма с байтами размера

LEAVE

Удаление стекового фрейма, созданного командой ENTER

NOP

Пустая операция

HLT

Останов

IN AL, PORT

Перенос байта из порта в АЛУ

OUT PORT, AL

Перенос байта из АЛУ в порт

WAIT

Ожидание прерывания

При выполнении команд источники данных (SRC) не изменяются, а приемники (DST) обычно изменяются. Существуют определенные правила, определяющие, что может быть источником, а что приемником, но здесь мы не будем о них говорить. Многие команды имеют три варианта: для 8-, 16- и 32-разрядных операндов соответственно. Они различаются по коду операции и/или по одному биту в команде. В табл. 5.9 приведены в основном 32-разрядные команды.


⇐ Предыдущая страница| |Следующая страница ⇒

.