Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Вычитание двоичных чисел без знака



Как и при анализе операции сложения, проанализируем процессы, происходящие при выполнении операции вычитания:

· если уменьшаемое больше вычитаемого, то разность положительная, результат верен.

· если уменьшаемое меньше вычитаемого, результат меньше 0, а это уже число со знаком. В этом случае результат необходимо откорректировать. После команды вычитания чисел без знака нужно анализировать флаг сf. Если сf =1, то произошел заем из старшего разряда, и результат получился в дополнительном коде.

К командам вычитания относятся следующие:

· DEC операнд – операция декремента, то есть уменьшения операнда на 1;

· SUB операнд1,операнд2 – команда вычитания с принципом действия: операнд1=операнд1–операнд2;

· SBB операнд1,операнд2 – команда вычитания с принципом действия: операнд 1=операнд 1–операнд 2– сf.

Рассмотрим пример программной обработки ситуации при вычитании чисел без знака

xor ax,ax

mov al,5

sub al,10

jnc m1; нет переноса?

neg al; в al – модуль результата

m1:

С указанными для этой команды вычитания исходными данными результат получается в дополнительном коде (отрицательный). Чтобы преобразовать результат к нормальному виду (получить его модуль), применяется команда neg, с помощью которой получается дополнение операнда. В нашем случае мы получили дополнение дополнения, или модуль отрицательного результата. Тот факт, что число отрицательное, отражен в состоянии флага cf.





Дата публикования: 2014-12-08; Прочитано: 547 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.012 с)...