Ответ: 5 – минимальное из трёх чисел.
ГУАП
КАФЕДРА № 34
ОТЧЕТ
ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
старший преподаватель | К. А. Жиданов | |||
должность, уч. степень, звание | подпись, дата | инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №1 |
по курсу: ИНФОРМАТИКА |
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № | 3045 | А. Д. Паршин | |||
подпись, дата | инициалы, фамилия |
Санкт-Петербург 2020
Задание 1. Целочисленные вычисления
Вычислить значение выражения (a-b)/c
1)Ход выполнения задания:
1) Для хранения чисел a, b, c в 16-ричной системе счисления будут использоваться регистры cl, al, bl. Разрядность выходных значений - 8 бит.
2) Результат программы будет находится в регистре al. (Остаток в ah, целое в al).
3) Переводим числа (10; -23; -24) в 16-ричную систему.
4) Производим вычитание al и bl. Реультат заносится в al.
5) Производим деление al/cl.
2) Текст программы:
8) xor eax, eax
9) xor ebx, ebx
10) xor ecx, ecx
11) mov al, 0x000a
12) mov bl, 0x0009
13) mov cl, 0x0008
14) sub al, bl
15) div cl
16) ret
3) Результаты работы программы на наборах входных данных:
4) Трассировочная таблица в соответствии с последовательными действиями:
№ СТРОКИ | EAX | EBX | ECX | AL | BL | CL | AH |
8 | 0 | ? | ? | ? | ? | ? | ? |
9 | 0 | 0 | ? | ? | ? | ? | ? |
10 | 0 | 0 | 0 | ? | ? | ? | ? |
11 | 10 | 0 | 0 | 10 | ? | ? | ? |
12 | 10 | -23 | 0 | 10 | -23 | ? | ? |
13 | 10 | -23 | -24 | 10 | -23 | -24 | ? |
14 | -33 | -23 | -34 | -33 | -23 | -24 | ? |
15 | ? | -24 | -34 | 1 | -23 | -24 | 9 |
|
|
Программа работает правильно, при подстановке других значений нет никаких заминок.
Ответ: в регистре AL сохранилось значение 1.
Задание 2. Вычисления с плавающей точкой
Ход выполнения задания:
1) Ход выполнения задания:
1) Для решения задачи будет использован сопроцессор и значения с плавающей точкой. Данные будут записаны в формате IEEE754.
Приведём значения тестового набора к формату IEEE754. Рассмотрим число (-8) (для других чисел алгоритм аналогичный). Первый бит отводится для обозначения знака числа. Так как число -8 отрицательное, то первый бит равен 1. Следующие 8 бит (с 2-го по 9-й) отведены под экспоненту. Последние 23 бита под мантиссу. Переведём -8 в двоичную систему счисления – (-1000). Сдвинем число на 3 разряда вправо. В результате мы получили основные составляющие экспоненциального нормализованного двоичного числа: мантиссу – 1.000 и экспоненту – 3. Для определения знака экспоненты, чтобы не вводить ещё один бит знака, добавляют смещение к экспоненте в половину байта +127. Таким образом, наша экспонента = 3 + 127 = 130. Переведем экспоненту в двоичное представление: 130 = 10000010. Оставшиеся 23 бита отводят для мантиссы. У нормализованной двоичной мантиссы первый бит всегда равен 1. Мантисса = 01000000000000000000000.
Таким образом, после преобразования по стандарту IEEE754 число -8 будет иметь вид – 11000001000000000000000000000000. Переведём в hex = 0xc1000000. По аналогии переведём числа (30; -30) в формат IEEE754.
|
|
2)Выполнение программы осуществляется по формуле (a-b)/c. Переведём это выражение в постфиксную нотацию – ab-c/.
2) Текст программы
8) fld dword[a]
9) fld dword[b]
10 )fsub
11) fld dword[c]
12) fdiv
13) fst dword[d]
14) ret
15) SECTION .data
16) a dd 0x41f00000
17) b dd 0xc1f00000
18) c dd 0xc1000000
19) d dd 0
3) Результаты работы программы на наборах входных данных.
Использовались ячейки памяти, чтобы проверить результаты проведённой работы.
4) Трассировочная таблица
№ СТРОКИ | a | b | c | d |
7 | 30 | ? | ? | 0 |
8 | - | -30 | ? | 0 |
9 | - | - | ? | 0 |
10 | 60 | - | -8 | 0 |
11 | - | - | - | -7.5 |
|
|
Программа работает правильно, при подстановке других значений никаких заминок не происходит.
Ответ: в переменной «d» сохранилось значение равное -7.5.
Часть 3. Найти минимальное из трёх чисел a, b и c
Решение:
1) Определим для минимального числа регистр EAX.
2) Текст программы:
8) xor eax, eax
9) xor ebx, ebx
10) xor ecx, ecx
11) xor edx, edx
12) mov eax, 24
13) mov ebx, 29
14) mov ecx, 5
15) cmp eax, ebx ; Сравним значения регистров
16) jl branch1
17) jmp branch2
18) branch1: cmp eax, ecx
19) jl result1
20) jmp result2
21) result1: mov edx, eax
22) jmp quit
23) result2: mov edx, ecx
24) jmp quit
25) branch2: cmp ebx, ecx
26) jl result3
27) jmp result2
28) result3: mov edx, ebx
29) jmp quit
30) quit: ret
3) Схема
7) Трассировочная таблица
№ СТРОКИ | EAX | EBX | ECX | EDX |
12 | 24 | ? | ? | 0 |
13 | - | 29 | ? | 0 |
14 | - | - | 5 | 0 |
15 |
a < b , branch1 | |||
18 | c < a, result2 | |||
23 | - | - | - | 5 |
При подстановке следующих числовых значений: {24, 29, 5} на регистре EDX сохранится значение 5, что свидетельствует о том, что 5 – минимальное из вводимых трёх чисел. Результат получился правильный.
Ответ: 5 – минимальное из трёх чисел.
|
|
Дата добавления: 2023-01-08; просмотров: 27; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!