Разделы:


Best links:

Арифметические команды

Микропроцессор ЦП выполняет четыре основных арифметических действия - сложение, вычитание, умножение и деление над 8- и 16-разрядными данными со знаками и без знака. Числа со знаком представлены в ЦП в дополнительном коде и их диапазон составляет от -32768 до +32767. Для реализации арифметических действий над числами, представленными в двоично-десятичном коде, введены специальные команды коррекции результатов. Все арифметические команды влияют на флаги.

Операции сложения. Включают три мнемокода: ADD (сложить), ADC(сложить с учетом переноса) и INC (увеличить на единицу).

Команда ADDосуществляет сложение операнда источника с операндом места назначения. Источником и местом назначения обычно являются регистр и память, причем источником могут быть также данные (константы), непосредственно представленные в команде. В первом формате поле d определяет место назначения результатов сложения: при d= 1 - это регистр, а при d = 0 - память.

Во втором формате поле sопределяет число байтов данных, непосредственно представленных в команде. При s=0 команда состоит из 4 байт, причем в двух последних записана 16-разрядная константа. При s=1 команда состоит из 3 байт и последний, третий, содержит 8-разрядную константу, которая предварительно (т. е. до сложения) расширяется со знаком до 16 разрядов. Напомним, что расширение со знаком состоит в распространении значения знакового разряда байта на весь старший байт; например, константа 5Аhбудет расширена до 005Аh, а константа 8Аh - до FF8Аh.

Команда ADCвыполняет операцию сложения двух операндов с прибавлением значения флага CF. Она используется для организации сложения многоразрядных чисел, двоичное представление которых превышает 16 разрядов. Сначала по команде ADD суммируются младшие разряды, а затем при сложении старших разрядов чисел используется команда ADC, которая позволяет учитывать единицу переноса. В качестве источника и места назначения операндов может служить регистр и память.

предыдущаяследующая