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


Двоичная арифметика


Все команды из этого раздела, кроме команд деления и умножения, изменяют флаги OF, SF, ZF, AF, CF, PF в соответствии с назначением каждого из этих флагов (см. главу 2.1.4).

  • Команда:
  • ADD приемник, источник
  • Назначение:
  • Сложение
  • Процессор:
  • 8086

    Команда выполняет арифметическое сложение приемника и источника, помещает сумму в приемник, не изменяя содержимое источника. Приемник может быть регистром или переменной, источник может быть числом, регистром или переменной, но нельзя использовать переменную одновременно и для источника, и для приемника. Команда ADD никак не различает числа со знаком и без знака, но, употребляя значения флагов CF (перенос при сложении чисел без знака), OF (перенос при сложении чисел со знаком) и SF (знак результата), можно использовать ее и для тех, и для других.

  • Команда:
  • ADC приемник, источник
  • Назначение:
  • Сложение с переносом
  • Процессор:
  • 8086

    Эта команда во всем аналогична ADD, кроме того, что она выполняет арифметическое сложение приемника, источника и флага СF. Пара команд ADD/ADC используется для сложения чисел повышенной точности. Сложим, например, два 64-битных целых числа: пусть одно из них находится в паре регистров EDX:EAX (младшее двойное слово (биты 0 – 31) — в ЕАХ и старшее (биты 32 – 63) — в EDX), а другое — в паре регистров ЕВХ:ЕСХ:

    add eax,ecx adc edx,ebx

    Если при сложении младших двойных слов произошел перенос из старшего разряда (флаг CF = 1), то он будет учтен следующей командой ADC.

  • Команда:
  • XADD приемник, источник
  • Назначение:
  • Обменять между собой и сложить
  • Процессор:
  • 80486

    Выполняет сложение, помещает содержимое приемника в источник, — сумму операндов — в приемник. Источник всегда регистр, приемник может быть регистром и переменной.

  • Команда:
  • SUB приемник, источник
  • Назначение:
  • Вычитание
  • Процессор:
  • 8086

    Вычитает источник из приемника и помещает разность в приемник. Приемник может быть регистром или переменной, источник может быть числом, регистром или переменной, но нельзя использовать переменную одновременно и для источника, и для приемника. Точно так же, как и команда ADD, SUB не делает различий между числами со знаком и без знака, но флаги позволяют использовать ее как для тех, так и для других.

  • Команда:
  • SBB приемник, источник
  • Назначение:
  • Вычитание с займом
  • Процессор:
  • 8086
    <


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