ВУЗ:
Составители:
Рубрика:
19
Для получения точного результата используется команда ADC, которая учитывает флаг переноса.
ADC приемник, источник – сложить с переносом.
результат следующий
приемник= приемник + источник + значение CF
При выполнении команды сложения устанавливаются следующие флаги:
1) CF=1 , если результат не помещается в приемнике, т.е. произойдет перенос.
2) PF=1; если результат имеет четное число битов с 1
3) AF=1, если результат сложения десятичных чисел требует коррекции
4) ZF=1, если результат =0
5) SF= 1, если результат отрицателен.
6) OF=1, если при сложении 2-х чисел одного знака результат превышает диапазон допустимых
значений в обратном коде, а сам приемником меняет знак SF и OF имеют смысл при сложении
чисел со знаком, AF – для десятичных чисел.
Коррекция результата
Для того чтобы поучить правильный результат (т.е. выполнить перенос из одного разряда в
другой, 56+25= 81, один десяток надо перенести в старший разряд) необходимо его
скорректировать. Это делается с помощью следующих команд.
AAA – скорректировать результат сложения для представления в кодах ASCII.
DAA – скорректировать сложение для представления в десятичном формате.
Формат:
AAA
DAA
AAA – преобразует содержимое AL в правильную неупакованную десятичную цифру в младшуих
4 битах старшие =0
ADD al,bl
AAA
INC приемник - команда прирастить на 1.
приемник= приемник+1
Команды вычитания.
Как таковой команды вычитания в МП не существует, это команда сложения двух чисел, одно их
которых в дополнительном коде.
SUB – вычесть
SBB – вычесть с заемом.
Формат команды следующий:
SUB приемник, источник
приемник= приемник- источник
SBB приемник, источник
приемник = приемник - источник- заем (флаг CF)
Нельзя вычитать содержимое одной ячейки из другой.
Устанавливаются флаги:
1- CF=1, если требуется заем.
2- PF=1, если результат имеет четное число битов со значением 1
3- AF=1, если результат вычитания десятичных чисел требует коррекции.
4- ZF=1, результат =0
5- SF=1 , результат отрицательный
6- OF= 1, если при вычитании чисел, имеющих разные знаки, результат превышает диапазон
значений приемника в обратном коде.
Коррекция результат вычитания 2-х десятичных чисел, как и сложения выполняется командами
AAS и DAS.
AAS – преобразует содержимое регистра AL в правильную неупакованную десятичную цифру.
DEC приемник
Это команда уменьшения приемника (регистра общего назначения или ячейки памяти) на 1.
Для получения точного результата используется команда ADC, которая учитывает флаг переноса. ADC приемник, источник – сложить с переносом. результат следующий приемник= приемник + источник + значение CF При выполнении команды сложения устанавливаются следующие флаги: 1) CF=1 , если результат не помещается в приемнике, т.е. произойдет перенос. 2) PF=1; если результат имеет четное число битов с 1 3) AF=1, если результат сложения десятичных чисел требует коррекции 4) ZF=1, если результат =0 5) SF= 1, если результат отрицателен. 6) OF=1, если при сложении 2-х чисел одного знака результат превышает диапазон допустимых значений в обратном коде, а сам приемником меняет знак SF и OF имеют смысл при сложении чисел со знаком, AF – для десятичных чисел. Коррекция результата Для того чтобы поучить правильный результат (т.е. выполнить перенос из одного разряда в другой, 56+25= 81, один десяток надо перенести в старший разряд) необходимо его скорректировать. Это делается с помощью следующих команд. AAA – скорректировать результат сложения для представления в кодах ASCII. DAA – скорректировать сложение для представления в десятичном формате. Формат: AAA DAA AAA – преобразует содержимое AL в правильную неупакованную десятичную цифру в младшуих 4 битах старшие =0 ADD al,bl AAA INC приемник - команда прирастить на 1. приемник= приемник+1 Команды вычитания. Как таковой команды вычитания в МП не существует, это команда сложения двух чисел, одно их которых в дополнительном коде. SUB – вычесть SBB – вычесть с заемом. Формат команды следующий: SUB приемник, источник приемник= приемник- источник SBB приемник, источник приемник = приемник - источник- заем (флаг CF) Нельзя вычитать содержимое одной ячейки из другой. Устанавливаются флаги: 1- CF=1, если требуется заем. 2- PF=1, если результат имеет четное число битов со значением 1 3- AF=1, если результат вычитания десятичных чисел требует коррекции. 4- ZF=1, результат =0 5- SF=1 , результат отрицательный 6- OF= 1, если при вычитании чисел, имеющих разные знаки, результат превышает диапазон значений приемника в обратном коде. Коррекция результат вычитания 2-х десятичных чисел, как и сложения выполняется командами AAS и DAS. AAS – преобразует содержимое регистра AL в правильную неупакованную десятичную цифру. DEC приемник Это команда уменьшения приемника (регистра общего назначения или ячейки памяти) на 1. 19