Статус нашего сайта: |
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В первую группу входят команды копирования и перемещения. Крайне важна команда M0V, в которой явно указываются исходный и целевой адреса. Если в качестве исходного адреса выступает регистр, целевой адрес может быть действительным. В табл. В.2 регистровые операнды обозначаются символом г, а действительные адреса — символом е. Соответственно, сочетание, о котором идет речь, выглядит как е<—г. Именно это обозначение идет первым в ячейке операндов команды M0V. Поскольку, согласно синтаксису команд, целевой адрес должен быть первым операндом, а исходный адрес — вторым, при обозначении операндов используется символ направленной влево стрелки (<-). Таким образом, запись е*-г означает, что содержимое регистра копируется по действительному адресу. Кроме того, в команде M0V действительный адрес может быть исходным, а регистр — целевым. Такая ситуация обозначается как r<—е (это вторая запись в ячейке операндов упомянутой команды). Третий вариант — по исходному адресу находятся сами данные, а целевой адрес является действительным, что выражается как е*-#. Непосредственно данные в таблице обозначаются символом решетки (#). Символ «В» в скобках в конце мнемонического кода призван показать, что существуют команды перемещения слова (M0V) и байта (M0VB). Таким образом, данная строка в таблице реально описывает шесть разных команд. Ни один из флагов в регистре кода условий не меняется в зависимости от выполнения команды перемещения, и поэтому в последних четырех столбцах показан прочерк (—). Обратите внимание, что команды перемещения на самом деле не перемещают данные. Они создают копии, не изменяя исходных данных, и именно в этом состоит отличие от традиционной операции перемещения. Вторая команда, представленная в этой таблице, — XCHG. Она меняет местами содержимое регистра и действительного адреса. Для обозначения операции обмена в таблице применяется символ двунаправленной стрелки (<—>). Поскольку в данном случае существуют варианты операции с байтом и со словом, в поле операндов команды XCHG содержится обозначение г<—>е. Следующей в таблице указывается команда загрузки действительного адреса (LEA). Она определяет численное значение действительного адреса и сохраняет его в регистре. Далее следует команда PUSH, которая вводит свой операнд в стек. Ее явный операнд может быть либо константой (что обозначается символом «#» в столбце операндов), либо действительным адресом (символ «е» в столбце операндов). Кроме того, имеет место неявный операнд SP, который не указывается в синтаксисе команды. Команда уменьшает значение SP на 2, а затем сохраняет операнд по адресу, на который SP указывает после обновления. Следующая команда — POP. Она удаляет операнд из стека и размещает его по действительному адресу. Команды PUSHF и P0PF, выполняющие введение в стек и выталкивание из стека регистра флагов состояния, также предусматривают наличие неявных операндов. Аналогично обстоит дело и с командой XLAT, которая загружает байтовый регистр AL с адреса, формируемого сложением AL и ВХ. Эта команда позволяет проводить оперативный поиск в таблицах размером 256 байт. |