|
|||||||||||||||||||||||||||||||||||||||||||||||||
Оглавление. Цель работы….3. Часть 1. Арифметические действия с целыми числами….3. Часть 2. Вычисления с плавающей точкой….5. Часть 3. Условные переходы…6. Результат работы ….9. Цель работы.. Ход рабоСтр 1 из 3Следующая ⇒
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ КАФЕДРА № 34 ОТЧЕТ
ПРЕПОДАВАТЕЛЬ
РАБОТУ ВЫПОЛНИЛ
Санкт-Петербург, 2020 Оглавление Цель работы…………………………………………………….3 Часть 1. Арифметические действия с целыми числами….3 Часть 2. Вычисления с плавающей точкой………………...5 Часть 3. Условные переходы…………………………………6 Результат работы ……………………………………………...9 Цель работы. Целью работы является изучение архитектуры сопроцессоров х86: регистров, системы команд, способов адресации и принципов написания программ. Изучение проводится на примере команд пересылки данных, арифметических, команд адресации и команд сопроцессора х86. Ход работы. 1) Получить задание 2) Составить алгоритм решения 3) Составить трассировочную таблицу алгоритма 4) Написать программу, реализующую алгоритм 5)Внести исходные данные и проверить правильность выполнения 6) Вывод Часть 1. Арифметические действия с целыми числами. Вычислить значение выражения a/(b+c) I. Для хранения чисел a, b, c в 16-ричной системе счисления используем регистры ax, bx, cx соответственно. Разрядность входных значений - 16 бит, дополнительный код. II. Результат программы будет храниться в регистре ax. III. Последовательность выполнения работы: 1) Представляем числа в 16-ричной системе счисления: · -1910 =-001316 Инвертируем: 001316=FFEC16 Прибавляем единицу: FFEC16+116=FFED16 Тогда: -1810=FFED16
· -1810=-001216 Инвертируем: 001216=FFED16 Прибавляем единицу: FFED16+116=FFEE16 Тогда: -1810=FFEE16 · -1510=000E16 Инвертируем: 000F16=FFF0c16 Прибавляем единицу: FFF016+116=FFF116 Тогда: -1510=FFF116
2) Складываем значения из регистров bx и cx,при этом сумма записывается в bx. 3) Произведем деление a/b, при этом целая часть записывается в ax, а остаток от деления в dx IV. Текст программы. 1) mov eax,0xffffffed 2) mov ebx,0xffffffee 3) mov ecx,0xfffffff1 4) mov edx,0xffffffff 5) add ebx,ecx 6) idiv ebx 7) ret V. Результаты работы программы на наборах входных данных.
VI. Трассировочная таблица в соответствии с последовательностью действий:
Результат 0 – совпадает с вычислениями вручную.
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|