Размещено 1 год назад по предмету
Информатика
от MaxEshanu
Помогите пожалуйста, решил наполовину, не знаю как расставить эти флаги состояния
1) По заданному варианту исходных данных получить набор десятичных чисел.
А, С согласно таблице вариантов
A = 7908, C = 12511
X1 = A, X2 = C
X3 = A+C+С, X4 = C-A
X1, X2, X3, X4 =?
2) Выполнить перевод десятичных чисел X1, …, X4 в двоичную систему счисления, получив их двоичные эквиваленты B1, …, B4 соответственно. Дополнить необходимыми ведущими нулями для получения 16-разрядного формата. Тетрады разделять точками.
B1, B2, B3, B4 =?
3) Используя 16-разрядный двоичный формат со знаком и полученные в предыдущем пункте задания двоичные числа B1, …, B4, вычислить двоичные числа B5, …, B8: B5 = -B1, B6 = -B2, В7= -В3, B8 = -B4. Тетрады разделять точками.
B5, B6, B7, B8 =?
4) Используя 16-разрядный двоичный формат со знаком для представления слагаемых и результата выполнить следующие сложения двоичных чисел (дополнить необходимыми ведущими нулями или единицами числа меньшей разрядности): B1+B7, B4+B5, B2+B6, B8+B3 (итого, 4 операций сложения). Тетрады разделять точками.
B1+B7, B4+B5, B2+B6, B8+B3=?
Для результатов суммирования расставить 6 флагов состояния. При выставлении флага чётности PF учитывать только младший байт.
CF, OF, ZF, AF, SF, PF=?
Отчет по лабораторной работе должен содержать результаты представления кодовых комбинаций представления чисел.
Вот моё решение:
Нужно помочь с флагами!!!! Ну и если ошибки какие-то есть, тоже укажите на них.
1)
A = 7908; C = 12511
X1 = A = 7908
X2 = C = 12511
X3 = A + C + C = 7908 + 12511 + 12511 = 32930
X4 = C – A = 12511 – 7908 = 4603
2)
B1 = X1 = 0001.1110.1110.0100 1EE4
B2 = X2 = 0011.0000.1101.1111 30DF
B3 = X3 = 1000.0000.1010.0010 80A2
B4 = X4 = 0001.0001.1111.1011 11FB
3)
B5 = -B1 = inv(0001.1110.1110.0100) = 1110.0001.0001.1011 E11B
B6 = -B2 = inv(0011.0000.1101.1111) = 1100.1111.0010.0000 CF20
B7 = -B3 = inv(1000.0000.1010.0010) = 0111.1111.0101.1101 7F5D
B8 = -B4 = inv(0001.0001.1111.1011) = 1110.1110.0000.0100 EE04
4)B1 0001.1110.1110.0100
+ B7 +0111.1111.0101.1101
= 1001.1110.0100.0001
CF=0, OF=0 , ZF=0, AF=0, SF=O, PF=0
B4 0001.0001.1111.1011
+ B5 +1110.0001.0001.1011
= 1111.0011.0001.0110
CF=0, OF=0 , ZF=0, AF=0, SF=O, PF=0
B2 0011.0000.1101.1111
+ B6 +1100.1111.0010.0000
= 1111.1111.1111.1111
CF=0, OF=0 , ZF=0, AF=0, SF=O, PF=0
B8 1110.1110.0000.0100
+ B3 +1000.0000.1010.0010
= 0001.0110.1110.1010.0110
CF=0, OF=0 , ZF=0, AF=0, SF=O, PF=0