При выполнении умножения требуется осуществлять операцию арифметического сдвига множителя, находящегося в регистре D, вправо, сохраняя значение знакового разряда. Для сохранения знака используется триггер переноса ТС.
В системе команд МП имеются 4 команды сдвига, в которых участвует триггер пере-носа. На рисунках 1.12 аиб триггер переноса вне кольца (сдвиг без ТС), на рисунках 1.12 в и г триггер переноса входит в кольцо (сдвиг через ТС). В любом случае выдвигае-мое из аккумулятора А разряд (младший или старший) числа поступает в ТС.
Рисунок ПР 2,3, а – Операции сдвига в акку- Рисунок ПР 2,3, б – Схема алгоритма
муляторе с участием триггера переноса ТС арифметического сдвига вправо
При арифметическом сдвиге вправо содержимое старшего (знакового) разряда дол-жно оставаться неизменным (см. рисунок 1.13, а). Поэтому при выполнении этой опера-ции необходимо предварительно запомнить содержимое старшего (знакового) разряда и затем, сдвинув вправо содержимое регистра, вписать в его старший разряд запомнен-ную ранее цифру. Схема алгоритма этой операции приведена на рисунке 1.13, б. Так как сдвиг выполняется только над содержимым аккумулятора, блок 1 алгоритма пере-сылает содержимое регистра D в аккумулятор А.
Во втором блоке содержимое А сдвигается влево «без ТС», знак передаётся в млад-ший разряд А и в триггер переноса. В блоках 3 и 4 дважды выполняется сдвиг вправо через ТС. После первого сдвига в А восстановилось исходное число, а в Тс продубли-рован знак числа. После второго сдвига в старший разряд входит «1», а в А – оказыва-ется исходное число, сдвинутое на один разряд вправо. «1» в седьмом разряде на ре-зультат не повлияет, так как после восьмого цикла умножения программа остановится.
Фрагмент алгоритма программы умножения в кодовых комбинациях, реализующий сдвиг содержимого аккумулятора вправо, приведён в таблице ПР 2.3, а.
Таблица ПР 2,3, а – Сдвиг содержимого А вправо с сохранением знака
Фрагмент программы умножения в кодовых комбинациях, реализующий сдвиг содер-жимого аккумулятора вправо с указанием адресов ЯП, приведён в таблице ПР 2.3, б.