|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Арифметические операции 4 страницаОтвет: 0010 01012 = 0000 0000 0010 01012. Ответ: 1. Целочисленный результат: 1.1. В восьмиразрядной сетке 0010 01012. 1.2. В шестнадцатиразрядной сетке 0000 0000 0010 01012. 2. Дробный результат: 2.1. С фиксированной точкой 10 0101,12. 2.2. Нормализованное 1, 0010 112 ∙ 25. 2.3. С плавающей точкой 0 10000100 0010 1100 0000 0000 0000 000.
Пример: Выполнить деление целых чисел 11110 : 210 = 11011112 : 102 в двоичной системе счисления. Результат представить: - в целочисленном формате в восьмиразрядной и шестнадцатиразрядной сетках; - в формате с плавающей точкой (32 бита). Порядок выполнения арифметического деления двоичных чисел приведен в таблице 2.23.2.
Табл.2.23.2 Арифметическое деление двух двоичных чисел 11110 : 210
11110 : 210 = 55,510; 11011112 : 102 = 11 01112 (остаток равен 1); 11 01112 = 5510 Ответ: 1. Целочисленный результат: 1.1. В восьмиразрядной сетке 0011 01112. 1.2. В шестнадцатиразрядной сетке 0000 0000 0011 01112. 2. Дробный результат: 2.1. С фиксированной точкой 11 0111,12. 2.2. Нормализованное 1,1011 112 ∙ 25. 2.3. С плавающей точкой 0 10000100 1011 1100 0000 0000 0000 000.
2.5. Проверка результатов выполнения арифметических операций
Флаги состояния отражают признаки результат выполнения арифметических инструкций, таких как сложение ADD, вычитание SUB, умножение MUL, деление DIV. Флаги состояния: - CF — устанавливается при переносе из старшего значащего бита результата при сложении (или заёме в старший значащий бит результата при вычитании). Флаг CF показывает наличие переполнения в беззнаковой целочисленной арифметике. - PF — устанавливается, если младший значащий байт результата содержит чётное число единичных (ненулевых) битов. Флаг ориентирован на проверку целостности данных при хранении и передаче. - AF — устанавливается при переносе из третьего бита 3 результата при сложении (или при заёме в третий бит результата при вычитании). Этот флаг ориентирован на использование в двоично-десятичной арифметике (BCD - binary coded decimal) . - ZF — устанавливается, если результат равен нулю. Флаг ориентирован на проверку результата на ноль при организации циклов. - SF — равен значению старшего значащего бита результата. Флаг SF используется для определения знака результата в знаковой арифметике. - OF — устанавливается, если есть наличие переполнения в дополнительном коде (при переносе в старший значащий бит результата). Флаг OF показывает наличие переполнения в знаковой целочисленной арифметике.
Пример 1 #make_BIN# ;СЛОЖЕНИЕ 8000h + 7FFFh ;+++++++++++++++++++++++ MOV AX, 08000h MOV BX, 07FFFh ADD AX, BX HLT
Анализ результата
Пример 2 #make_BIN# ;СЛОЖЕНИЕ FFFFh + 0001h ;+++++++++++++++++++++++ MOV AX, 0FFFFh MOV BX, 00001h ADD AX, BX
Анализ результата
Пример 3 #make_BIN# ;СЛОЖЕНИЕ 07FFFh + 00001h ;+++++++++++++++++++++++ MOV AX, 07FFFh MOV BX, 00001h ADD AX, BX
Анализ результата
Пример 4 #make_BIN# ;СЛОЖЕНИЕ 8000h + 8000h ;+++++++++++++++++++++++ MOV AX, 08000h MOV BX, 08000h ADD AX, BX
Анализ результата
;+++++++++++++++++++++++ Пример 5 #make_BIN# ;ВЫЧИТАНИЕ 8000h - 8000h ;----------------------- MOV AX, 08000h MOV BX, 08000h SUB AX, BX
Анализ результата
Пример 6 #make_BIN# ;ВЫЧИТАНИЕ 8000h - 8001h ;----------------------- MOV AX, 08000h MOV BX, 08001h SUB AX, BX
Анализ результата
Пример 7 #make_BIN# ;ВЫЧИТАНИЕ 8000h - 7FFF h ;----------------------- MOV AX, 08000h MOV BX, 07FFFh SUB AX, BX
Анализ результата
Пример 8 #make_BIN# ;ВЫЧИТАНИЕ 7FFFh - 8000h ;----------------------- MOV AX, 07FFFh MOV BX, 08000h SUB AX, BX
Анализ результата
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|