Assembler - язык неограниченных возможностей


Пересылка данных - часть 5


Программирование портов ввода-вывода рассмотрено подробно в главе 5.10.

  • Команда:
  • CWD
  • Назначение:
  • Конвертирование слова в двойное слово
  • Процессор:
  • 8086
  • Команда:
  • CDQ
  • Назначение:
  • Конвертирование двойного слова в учетверенное
  • Процессор:
  • 80386

    Команда CWD превращает слово в AХ в двойное слово, младшая половина которого (биты 0 – 15) остается в АХ, а старшая (биты 16 – 31) располагается в DX. Команда CDQ выполняет аналогичное действие по отношению к двойному слову в ЕАХ, расширяя его до учетверенного слова в EDX:EAX. Эти команды всего лишь устанавливают все биты регистра DX или EDX в значение, равное значению старшего бита регистра АХ или ЕАХ, сохраняя таким образом его знак.

  • Команда:
  • CBW
  • Назначение:
  • Конвертирование байта в слово
  • Процессор:
  • 8086
  • Команда:
  • CWDE
  • Назначение:
  • Конвертирование слова в двойное слово
  • Процессор:
  • 80386

    CBW расширяет байт, находящийся в регистре AL, до слова в АХ, CWDE расширяет слово в АХ до двойного слова в ЕАХ. CWDE и CWD отличаются тем, что CWDE располагает свой результат в ЕАХ, в то время как CWD, команда, выполняющая точно такое же действие, располагает результат в паре регистров DX:AX. Так же как и команды CWD/CDQ, расширение выполняется путем установки каждого бита старшей половины результата равным старшему биту исходного байта или слова, то есть:

    mov al,0F5h ; AL = 0F5h = 245 = -11 cbw ; теперь АХ = 0FFF5h = 65 525 = -11



    Так же как и в случае с командами PUSHA/PUSHAD, пара команд CWD/CDQ — это одна команда с кодом 99h, и пара команд CBW/CWDE — одна команда с кодом 98h. Интерпретация этих команд зависит от того, в каком (16-битном или в 32-битном) сегменте они исполняются, и точно так же, если указать CDQ или CWDE в 16-битном сегменте, ассемблер поставит префикс изменения разрядности операнда.

  • Команда:
  • MOWSX приемник, источник
  • Назначение:
  • Пересылка с расширением знака
  • Процессор:
  • 80386

    Копирует содержимое источника (регистр или переменная размером в байт или слово) в приемник (16- или 32-битный регистр) и расширяет знак аналогично командам CBW/CWDE.

  • Команда:
  • MOWZX приемник, источник
  • Назначение:
  • Пересылка с расширением нулями
  • Процессор:
  • 80386
    <


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