Статус
нашего
сайта:
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

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


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

В первую группу входят команды копирования и перемещения. Крайне важна команда M0V, в которой явно указываются исходный и целевой адреса. Если в качестве исходного адреса выступает регистр, целевой адрес может быть действительным. В табл. В.2 регистровые операнды обозначаются символом г, а действительные адреса — символом е. Соответственно, сочетание, о котором идет речь, выглядит как е<—г. Именно это обозначение идет первым в ячейке операндов команды M0V. Поскольку, согласно синтаксису команд, целевой адрес должен быть первым операндом, а исходный адрес — вторым, при обозначении операндов используется символ направленной влево стрелки (<-). Таким образом, запись е*-г означает, что содержимое регистра копируется по действительному адресу.

Кроме того, в команде M0V действительный адрес может быть исходным, а регистр — целевым. Такая ситуация обозначается как r<—е (это вторая запись в ячейке операндов упомянутой команды). Третий вариант — по исходному адресу находятся сами данные, а целевой адрес является действительным, что выражается как е*-#. Непосредственно данные в таблице обозначаются символом решетки (#). Символ «В» в скобках в конце мнемонического кода призван показать, что существуют команды перемещения слова (M0V) и байта (M0VB). Таким образом, данная строка в таблице реально описывает шесть разных команд.

Ни один из флагов в регистре кода условий не меняется в зависимости от выполнения команды перемещения, и поэтому в последних четырех столбцах показан прочерк (—). Обратите внимание, что команды перемещения на самом деле не перемещают данные. Они создают копии, не изменяя исходных данных, и именно в этом состоит отличие от традиционной операции перемещения.

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

Далее следует команда PUSH, которая вводит свой операнд в стек. Ее явный операнд может быть либо константой (что обозначается символом «#» в столбце операндов), либо действительным адресом (символ «е» в столбце операндов). Кроме того, имеет место неявный операнд SP, который не указывается в синтаксисе команды. Команда уменьшает значение SP на 2, а затем сохраняет операнд по адресу, на который SP указывает после обновления.

Следующая команда — POP. Она удаляет операнд из стека и размещает его по действительному адресу. Команды PUSHF и P0PF, выполняющие введение в стек и выталкивание из стека регистра флагов состояния, также предусматривают наличие неявных операндов. Аналогично обстоит дело и с командой XLAT, которая загружает байтовый регистр AL с адреса, формируемого сложением AL и ВХ. Эта команда позволяет проводить оперативный поиск в таблицах размером 256 байт.


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

.