Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovoy_proekt_1_-vychislitelnaya_i_mikroprots...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
345.6 Кб
Скачать

3. Сложение и вычитание чисел

Сначала рассмотрим выполнение этих операций над числами без знаков, что соответствует, например, операциям над кодами и положительными чис­лами.

Если операнды являются однобайтовыми числами, то их сложение и вы­читание осуществляется командами ADD R и SUB R. При выполнении ко­манды сложения возможно переполнение разрядной сетки, о чем свидетельст­вует значение флага переноса С. Особенностью выполнения команды вычита­ния является то, что ее результат представлен в дополнительном коде. Напом­ним, что при положительном числе дополнительный код совпадает с прямым, а при отрицательном он равен дополнению данного числа до 2n. Для двоичных отрицательных чисел дополнительный код вычисляют путем инверсии всех разрядов прямого кода с последующим добавлением единицы.

Если прямой код числа содержится в аккумуляторе, то переход к допол­нительному коду осуществляется с помощью команд инверсии CMA и инкре­мента (сложения с единицей) INR A. Обратный переход от дополнительного кода числа к прямому осуществляют аналогичным образом — с помощью ко­манд декремента (вычитания единицы) DCR A и инверсии CMA.

Если хотя бы один из операндов занимает более n разрядов (где n — раз­рядность МП), то говорят, что вычисления производятся с повышенной точно­стью. В МП серии КР580 для сложения двухбайтовых слов предусмотрена ко­манда DAD RP. В общем же случае сложение и вычитание многобайтовых слов осуществляется путем многократного использования команд ADC R и SBBR.

Рассмотрим теперь выполнение операций сложения и вычитания чисел со знаками. Знак числа принято размещать в старшем разряде старшего байта. В МП серии КР580 значение старшего разряда дублируется во флаге знака S, если результат выполнения команды влияет на этот знак. Положительным числам соответствует S=0, а отрицательным — S=1. При обработке чисел со знаками непосредственно сложению и вычитанию предшествует анализ знаков операн­дов.

О наличии переполнения разрядной сетки, которое может произойти при сложении как двух положительных, так и двух отрицательных чисел, свиде­тельствует факт неравнозначности Значений флагов переноса и знака. Если же складываются числа разных знаков, то переполнение не может произойти, а значение флага переноса игнорируется.

4. Умножение и деление

Умножение чисел в МП реализуется с помощью команд суммиро­вания и сдвига. Для получения  к сумме частичных произведений  добавля­ется , если очередной разряд 1, после чего осуществляется сдвиг ; указан­ная процедура повторяется для каждого разряда . При этом анализ  можно начинать со старших разрядов и соответственно сдвигать влево, либо наоборот.

Знак обычно формируют независимо от описанной процедуры умноже­ния на основе анализа знаков сомножителей, а при осуществлении умножения используют прямые коды сомножителей без знака. В этом случае необходимо учитывать, что освобождающиеся разряды при сдвигах  должны заполняться нулями.

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

Рассмотренные варианты выполнения арифметических действий с помо­щью МП подразумевают представление чисел в форме с фиксированной запя­той (точкой). Обработку данных с плавающей запятой выполняют путем раз­дельной обработки порядков и мантисс чисел на основе рассмотренных алго­ритмов выполнения операций над числами, представленными в форме с фикси­рованной запятой. Следует отметить, что программы реализации арифметиче­ских операций над числами, представленными в форме с плавающей запятой, достаточно сложны и их выполнение занимает большое время, в результате чего такие программы редко применяются в МПК КР580.