Системное программное обеспечение. Вариант №4
|
|
engineerklub | Дата: Четверг, 18.11.2021, 08:15 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 28530
Статус: Offline
| Системное программное обеспечение. Вариант №4
Тип работы: Работа Лабораторная Форматы файлов: Microsoft Word Сдано в учебном заведении: СибГУТИ
Описание: Лабораторная работа 1 Вычисление арифметических выражений Вариант 4 (-А / 2 + 4·(В + 1) + 3·С) Задание 1
Изучите приведенную ниже программу на языке ассемблера. Программа вычисляет выражение 5*(3+8*9) и результат заносит в регистр АХ. TITLE Program5
;название программы
.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
Выполните отладку программу с использованием отладчика TurboDebugger. В ходе отладки посмотрите как изменяются регистры в процессе выполнения программы. Чему равно значение регистра АХ перед выходом из программы? Совпадает ли результат вычислений с реальным значением выражения? Задание 2
Используя предложенную выше программу, разработайте программу, которая вычисляет заданное выражение. Исполнить программу с несколькими (три - четыре) наборами исходных данных, проверить правильность результатов. Числа в наборе данных должны быть различными, т.е. положительными, отрицательными, нулевыми. (В отчете обязательно привести результаты вычислений).
Номер задания выбирается в соответствии с последней цифрой пароля.
Лабораторная работа 2 Оператор цикла LOOP. Команды условных переходов
Вариант 4 Составьте программу для подсчета суммы 1+3+5+…+(2·N+1), где N – произвольное положительное число. Допускается использование в программе команд условных и безусловных переходов и оператора цикла
Задание 1
Изучите приведенную ниже программу на языке ассемблера. Программа суммирует числа от 1 до 10 и результат заносит в регистр АХ. TITLE Program2
;название программы
.MODEL small
;отводим под стек и под данные по 64Кб
.STACK 100h
;отмечаем начало сегмента стека
.DATA
;отмечаем начало сегмента данных
.CODE
;отмечаем начало сегмента кодов
main PROC
MOV AX, @data
;копируем адрес
MOV DS, AX
;сегмента данных
CLD
xor AX,AX
mov CX, 10
L1:
add AX, CX
loop L1
; здесь в цикле суммируются числа
; начиная с 10 и заканчивая 1
MOV AX,4C00h
;выход
INT 21h
;из программы
main ENDP
END main
Выполните отладку программу с использованием отладчика TurboDebugger. Посмотрите как изменяются регистры в процессе выполнения программы.Чему равно значение регистра АХ перед выходом из программы? регистра СХ? Совпадает ли результат вычислений с реальным значением выражения? Задание 2
Используя предложенную выше программу, выполните второе задание. Исполнить программу с несколькими (три - четыре) значениями параметра N, проверить правильность результатов. В отчете обязательно привести результаты вычислений.
СКАЧАТЬ
|
|
| |
engineerklub | Дата: Четверг, 18.11.2021, 08:15 | Сообщение # 2 |
Генералиссимус
Группа: Администраторы
Сообщений: 28530
Статус: Offline
| Лабораторная работа 3 Работа с массивами данных
Вариант 4 Найти сумму абсолютных величин в массиве чисел и занести ее в DX.
Цель работы: Научиться обрабатывать массивы данных.
Порядок выполнения работы: ВАЖНО: Прочитайте требования к выполнению и оформлению лабораторных работ.
Задание 1
Изучите приведенную ниже программу на языке ассемблера. Программа вычисляет максимальный элемент массива и результат заносит в переменную регистр Max. TITLE Program3
;название программы
.MODEL small
;отводим под стек и под данные по 64Кб
.STACK 100h
;отмечаем начало сегмента стека
.DATA
;отмечаем начало сегмента данных
A DW 5, 3, 9, 4, 5
Max DW 0
;описание массива из 5 элементов
;описание переменной Max
.CODE
;отмечаем начало сегмента кодов
main PROC
mov AX, @data
;копируем адрес
mov DS, AX
;сегмента данных
mov SI, OFFSET A
;заносим в SI начало массива А
mov CX, 4
;в СХ заносим количество итераций
cld
;устанавливаем прямой порядок обработки массива
mov AX,
[SI]mov Max, AX
L1:
;в Мах заносим первый элемент массива
inc SI
;сдвигаемся по массиву к следующему
inc SI
;элементу
mov AX,
[SI];заносим в АХ текущий элемент массива
cmp AX, Max
jbe L2
;сравниваем АХ с Мах
;если меньше или равно, переходим на L2
mov Max, AX
L2:
;иначе запоминаем новый максимум
loop L1
;циклически повторяем все действия
mov AX,4C00h
;выход
int 21h
;из программы
main ENDP
END main
Выполните отладку программу с использованием отладчика TurboDebugger. Посмотрите как изменяются регистры в процессе выполнения программы.Чему равно значение переменной Max перед выходом из программы? Совпадает ли результат вычислений с реальным значением максимального элемента массива? Задание 2
Используя предложенную выше программу, выполните второе задание. Исполнить программу с несколькими (три - четыре) различными (по количеству и по составу) массивами данных, проверить правильность результатов.
СКАЧАТЬ
|
|
| |
engineerklub | Дата: Четверг, 18.11.2021, 08:16 | Сообщение # 3 |
Генералиссимус
Группа: Администраторы
Сообщений: 28530
Статус: Offline
| Тип работы: Работа Контрольная Форматы файлов: Microsoft Word Сдано в учебном заведении: СибГУТИ
Описание: Задание Написать и отладить программу на языке ассемблера. В программе описать процедуру, которая суммирует элементы массива и результат выводит на экран. Параметры передавать следующим образом: в ВХ – смещение массива; в СХ – число элементов в массиве; в АХ – результат вычислений (сумма элементов массива). В основной программе вызвать описанную процедуру для двух разных массивов.
СКАЧАТЬ
|
|
| |