Справочник по языку Ассемблера IBM PC


Команды пересылки данных общего назначения - часть 2


/p>

Но есть и другой, более красивый способ выполнения данной операции — использование стека и команд push и pop:

          push    ds      ;поместить значение регистра ds в стек         pop     es      ;записать в es число из стека

  • нельзя использовать сегментный регистр cs в качестве операнда назначения. Причина здесь простая. Дело в том, что в архитектуре микропроцессора пара cs:ip всегда содержит адрес команды, которая должна выполняться следующей. Изменение командой mov содержимого регистра cs фактически означало бы операцию перехода, а не пересылки, что недопустимо.

  • Для двунаправленной пересылки данных применяют команду . Для этой операции можно, конечно, применить последовательность из нескольких команд mov, но из-за того, что операция обмена используется довольно часто, разработчики системы команд микропроцессора посчитали нужным ввести отдельную команду обмена xchg. Естественно, что операнды должны иметь один тип. Не допускается (как и для всех команд ассемблера) обменивать между собой содержимое двух ячеек памяти. К примеру,

              xchg    ax,bx   ;обменять содержимое регистров ax и bx         xchg    ax,word ptr [si]        ;обменять содержимое регистра ax                 ;и слова в памяти по адресу в [si]




    Начало  Назад  Вперед