Вариант 07 Лаба 01 |
200,00 ₽
Просмотров: 670
|
Тип работы: | Контрольная |
Название предмета: | Основы системного программирования |
Тема/вариант: | Вариант 07 Лаба 01 |
Объем работы: | 5 |
ВУЗ: | СибГУТИ |
Дата выполнения: | 2013-08-12 |
Размер файла, тип файла: | 110.19 Kb, RAR |
Прикрепленные файлы: |
Курс 170 Основы системного программирования (952 Kb)
|
Основы системного программирования
Лабораторная работа 1 назад | оглавление | вперёд
Тема: Вычисление арифметических выражений
Цель работы: Научиться использовать арифметические команды языка ассемблера.
Порядок выполнения работы:
ВАЖНО: Прочитайте требования к выполнению и оформлению лабораторных работ.
Задание 1Вариант 7
1. Изучите приведенную ниже программу на языке ассемблера. Программа вычисляет выражение 5*(3+8*9) и результат заносит в регистр АХ.
TITLEProgram5 ;название программы
.MODEL small ;отводим под стек и под данные по 64Кб
.STACK 100h ;отмечаем начало сегмента стека
.DATA ;отмечаем начало сегмента данных
A DW 5 ;
B DW 3 ;
C DW 8 ;
D DW 9 ;
.CODE ;отмечаем начало сегмента кодов
main PROC
MOV AX, @data ;копируем адрес
MOV DS, AX ;сегмента данных
mov AX, C
mov BX, D
mul BX ;Умножение 8*9. Результат в АХ
add AX, B ; прибавление 3 В АХ 3+8*9
mov BX, A
mul BX ;умножение на 5
MOV AX,4C00h ;выход
INT 21h ;из программы
main ENDP
END main
2. Выполните отладку программу с использованием отладчика TurboDebugger. В ходе отладки посмотрите как изменяются регистры в процессе выполнения программы. Чему равно значение регистра АХ перед выходом из программы? Совпадает ли результат вычислений с реальным значением выражения?
Задание 2
Используя предложенную выше программу, разработайте программу, которая вычисляет заданное выражение. Исполнить программу с несколькими (три - четыре) наборами исходных данных, проверить правильность результатов. Числа в наборе данных должны быть различными, т.е. положительными, отрицательными, нулевыми. (В отчете обязательно привести результаты вычислений).
Номер задания выбирается в соответствии с последней цифрой пароля.
1. А – 5•(В – 2•С) + 2
2. - 4•А + (В + С) / 4 + 2
3. 7•А - 2•В - 100 + С
4. -А / 2 + 4•(В + 1) + 3•С
5. 5•(А - В) - 2•С + 5
6. (А/ 2 + В) / 4 + С - 1
7. -(С + 2•А + 4•В + В)
8. 6•С + (В - С + 1) / 2
9. 2 - В (А + В) + С / 4
10. 2•В - 1 + 4 (А - 3•С)
Замечание. Переменные A, B, C являются целочисленными, могут быть положительными либо отрицательными. Деление полагается целочисленным, т.е. например, 5/2=2, 6/2=3.
Сообщить другу