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


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


К этой группе относятся следующие команды:


mov <операнд назначения>,<операнд-источник>


xchg <операнд1>,<операнд2>


- это основная команда пересылки данных. Она реализует самые разнообразные варианты пересылки.


Отметим особенности применения этой команды:

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


  • К примеру, рассмотрим фрагмент программы для пересылки байта из ячейки fls в ячейку fld:

    masm model   small .data fls     db      5 fld     db      ? .code start: ...         mov     al,fls         mov     fld,al         ... end     start

  • нельзя загрузить в сегментный регистр значение непосредственно из памяти. Поэтому для выполнения такой загрузки нужно использовать промежуточный объект. Это может быть регистр общего назначения или стек. Если вы посмотрите листинги 3.1 и 5.1, то увидите в начале сегмента кода две команды mov, выполняющие настройку сегментного регистра ds. При этом из-за невозможности загрузить впрямую в сегментный регистр значение адреса сегмента, содержащееся в предопределенной переменной @data, приходится использовать регистр общего назначения ax;

  • нельзя переслать содержимое одного сегментного регистра в другой сегментный регистр. Это объясняется тем, что в системе команд нет соответствующего кода операции. Но необходимость в таком действии часто возникает. Выполнить такую пересылку можно, используя в качестве промежуточных все те же регистры общего назначения. Вот пример инициализации регистра es значением из регистра ds:

  •           mov     ax,ds         mov     es,ax

    <


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