Cтраница 4
Однако при составлении программы и при распределении регистров необходимо учитывать, что содержимое реестра 2 будет изменяться по каждой команде умножения. [46]
Ассемблер отыскивает такие ошибки, как указание регистра с плавающей точкой с нечетным номером или указание нечетного регистра г4 в команде умножения. Если обнаруживается ошибка, то в листинге программы печатается сообщение об ошибке. [47]
Как мы отмечали в § 2.1, да и вы, наверное, уже заметили это сами, в некоторых моделях ЭВМ PDP-11 отсутствуют команды умножения и деления. Предложенная нами процедура вывода десятичных чисел основывалась на последовательном делении на десять; так как совершенно недопустимо потерять возможность выводить числовые данные в десятичном виде, то надо найти какой-нибудь другой способ деления на десять. Даже если в вашей модели есть команды MUL и D1V, вам все-таки следует изучить предлагаемую здесь процедуру, так как она знакомит с чрезвычайно важными понятиями. [48]
Формирование адреса следующей команды с использованием счетчика циклов. [49] |
Тогда для трехадрес-ной ЦВМ без счетчика циклов программу вычислений можно задать табл. 107, в которой символы X, П, , и ОСТ соответствуют командам умножения, печати, сложения, сравнения и останова машины. [50]
Так что в этом случае особенность операций умножения состоит лишь в том, что при их выполнении используется пара смежных регистров и что в поле первого адреса команд умножения задается не номер регистра, в котором находится множимое, а номер предшествующего ему регистра, причем этот номер должен быть четным. Кроме того, следует иметь в виду, что содержимое первого из используемых двух смежных регистров также изменяется. [51]
Этому уравнению соответствует программа умножения, приведенная на рис. 8.11, в которой четыре байта РЗ, Р2, Р1, РО представляют собой произведение, а команда MUL является командой умножения чисел без знака. По сравнению с этой программой умножение с повышенной точностью чисел со знаком и без знака, для реализации которого в качестве простейшей операции используется умножение чисел со знаком, выполняется более сложно. [52]
Поскольку сдвиг операнда на один бит влево удваивает значение операнда ( умножает на 2), а сдвиг на один бит вправо уменьшает значение операнда вдвое ( делит на 2), то команды сдвига можно использовать в качестве команд быстрого умножения и деления. [53]
Структура микропроцессора К1801ВМЗ. [54] |
Передача информации в ОпБ осуществляется по двум шинам чтения п отдельной шине записи, что позволило при наличии быстродействующего АЛУ сократить время цикла работы блока. Команды умножения, деления, параметрических сдвигов выполняются с помощью регистра-счетчика тактов, что уменьшает время выполнения команд расширенной арифметики по сравнению со временем выполнения чисто микропрограммным способом. [55]
Операции над данными в языке Си прямо соответствуют командам, имеющимся в большинстве ЭВМ, например действиям над числами со знаком. Команды умножения и деления ( /) целых чисел выполняют почти все ЭВМ. Деление дает не только частное, но и остаток от деления, причем знак остатка совпадает со знаком делимого. [56]
Длина области Y выбрана равной 4 байтам, чтобы произведение dht с гарантией поместилось в отведенном формате. Далее следуют команды умножения для получения значения полной зарплаты. Полученное произведение делится на 100, что позволяет в частном получить значение полной зарплаты в рублях, а в остатке - копейки. С помощью команды MVC) производится пересылка полученного значения полной зарплаты в область памяти NETTO, занимающей 4 байта. Далее следует команда вычитания, по которой производится вычитание налога, зна чение которого по условию задано в рублях. [57]