Аддитивные команды

Опубликовано декабря 21, 2017 в Архитектура процессора Intel

Аддитивные команды представляются в обобщенном виде:

CODE dst.src (CODE — код операции или мнемоническое обозначение команды)

  • dst: = r, mem;
  • src := r, mem, imm.

ADD (ADD integers) — сложение целых чисел.

Команда ADD прибавляет операнд-источник к операнду-приемнику и помещает результат на место операнда-приемника.

Действия, выполняемые командой: dst + src —> dst.

Примеры:

  • ADD ah, al — сложение al c ah;
  • ADD ax, bx — сложение ax c bx;
  • ADD ah, 4 — сложение ah с константой 4.

SUB (SUBtract integers) — вычитание целых чисел.

Команда SUB вычитает операнд-источник из операнда-приемника и помещает результат на место операнда-приемника.

Аддитивные команды

Действия, выполняемые командой: dst — src —> dst.

Примеры:

  • SUB ah, al — Вычитание al из ah с записью результата в ah;
  • SUB al. 4 — Вычитание числа 4 из al с записью результата в al.

ADC (ADd integers with Сапу) — сложение целых чисел с переносом.

Команда ADC складывает операнд-источник, операнд-приемник и значение флага переноса (CF). Результат заносится в операнд-приемник.

Действия, выполняемые командой: dst + src + CF -> dst.

Команда ADC обычно используется для организации сложения длинных чисел по частям (байтам или словам).

Пример:

  • ADC ah, al — сложение ah, al и значения флага переноса CF. Результат помещается в ah.

SBB (SuBtract integers with Bonow) — вычитание целых чисел с заемом.

Команда SBB вычитает операнд-источник из операнда-приемника, затем вычитает из результата значение флага заема (CF). Результат заносится в операнд-приемник.

Действия, выполняемые командой: dst — src — CF -> dst.

Команда SBB обычно используется для организации вычитания длинных чисел по частям (байтам или словам).

Примеры:

  • SBB АЛ, AL — из содержимого регистра АН вычитается содержимое регистра AL и значение флага CF.

CMP (CoMPare two operands) — Сравнение двух операндов.

Команда CMP реализуется как вычитание операнда-источника из операнда-приёмника, но в отличии от команды SUB, результат вычитания не сохраняется в приёмнике, а лишь оказывает влияние на арифметические флаги.

Команда СМР обычно используется для организации условных переходов по различным арифметическим флагам.

Примеры:

  • СМР АН, CL — сравнение АН с CL;
  • СМР АХ, 8 — сравнение непосредственного операнда (числа 8) с АХ;
  • СМР АН, OAh — сравнение непосредственного операнда (шестнадцатеричного числа А) с АН.

Влияние аддитивных команд на флаги:

Аддитивные команды изменяют значения всех арифметических флагов. При выполнении команд ADD и ADC для беззнаковых чисел о переполнении формата можно судить по флагу CF, а для знаковых чисел — по флагу OF. При выполнении команд SUB, SBB над беззнаковыми операндами установка флага CF свидетельствует о том, что из меньшего операнда вычитался больший и результат операции представлен в беpзнаковом дополнительном коде.

Если Вас интересуют, Модули Opencart Плагины Шаблоны! Все это бесплатно, на сайте компании Feofan