Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5ZTMNyz0U3.file-1.doc
Скачиваний:
6
Добавлен:
30.04.2022
Размер:
291.84 Кб
Скачать

3.3. Задание на лабораторную работу

1) Изучить и выполнить программы-примеры из теоретического введения к лабораторной работе. Проследить за использованием стека и регистров для передачи управления и параметров.

2) Написать и выполнить программу, реализующую работу с процедурами сообразно своему варианту из таблицы 5. Программа должна быть реализована в двух вариантах:

– передача параметров в процедуру осуществляется через регистры;

– передача параметров в процедуру осуществляется через стек.

Таблица 5

Варианты заданий на лабораторную работу

вар.

Задание

1

Даны массивы P (10 байт) и Q (7 байт). Найти количество положительных элементов в обоих массивах. Подсчет количества положительных элементов оформить как процедуру.

2

Даны массивы X (5 слов) и Y (6 слов). Найти количество элементов, равных 0, в обоих массивах. Подсчет количества нулей оформить как процедуру.

3

Даны массивы J (7 байт) и В (5 байт). Заменить все отрицательные элементы в массивах на -1, положительные – на 1. Замену элементов оформить как процедуру.

4

Даны массивы M (6 байт) и Т (7 байт), заполненные различными символами. Заменить все символы «*» в массивах на «#». Замену элементов оформить как процедуру.

5

Даны массивы R (6 байт) и Т (7 байт), заполненные различными символами. Подсчитать количество символов «!» в обоих массивах. Подсчет символов оформить как процедуру.

6

Даны массивы A (5 слов) и B (4 слова). Найти сумму всех положительных элементов каждого массива. Подсчет суммы элементов оформить как процедуру.

7

Даны массивы E (7 слов) и F (5 слов). Найти количество четных элементов в каждом массиве. Подсчет количества четных элементов оформить как процедуру.

8

Даны массивы I (7 слов) и J (5 слов). Заменить все нечетные элементы на 0 в каждом массиве. Замену нечетных элементов оформить как процедуру.

9

Даны массивы I (6 слов) и J (7 слов). Найти сумму всех нечетных элементов массивов. Подсчет суммы элементов оформить как процедуру.

Продолжение табл. 5

10

Даны массивы L (10 байт) и M (7 байт), заполненные различными символами. Определить количество слов (слово - группа символов, не содержащая других пробелов внутри себя и отделенная от других символов пробелами) в каждом массиве. Подсчет количества слов оформить как процедуру.

11

Даны массивы T (8 байт) и U (7 байт). Определить минимальный положительный элемент в каждом массиве. Поиск элемента оформить как процедуру.

12

Даны массивы A (6 слов) и B (7 слов). Определить максимальный отрицательный элемент в каждом массиве. Поиск элемента оформить как процедуру.

Дополнительное задание (по желанию). Реализовать переход на процедуру и возврат из нее без использования команд CALL и RET (используя PUSH, POP, JMP).

3) Выполнить индивидуальное задание, которое рассматривается в качестве зачетной работы по всему курсу ассемблера (задание выдается преподавателем).

Примеры зачетных заданий

Задание 1. Дано:

X, Y – массивы по 3 восьмибитовых числа со знаком;

SUM – 16-битовая переменная.

В каждом массиве найти среднее по величине число (не среднее значение, а среднее из трех по величине), вычислить сумму двух полученных чисел и поместить ее в переменную SUM.

Определение среднего из трех чисел оформить в виде процедуры. Параметры передать через регистры AL, AH и BL. Результат вернуть через регистр BH.

Задание 2. Дано:

три массива чисел-слов без знака: X – 20 чисел, Y – 30 чисел, Z – 16 чисел;

SUM – переменная – двойное слово.

Найти максимум в каждом из массивов, а затем вычислить сумму этих максимумов. Полученную сумму поместить в переменную SUM.

Вычисление максимума оформить в виде процедуры. Параметры передать через стек. Результат вернуть в регистре DX.

Задание 3. Дано:

X, Y – массивы по 3 восьмибитовых числа со знаком;

SUM – 16-битовая переменная.

В каждом массиве найти среднее по величине число (не среднее значение, а среднее из трех по величине), вычислить сумму двух полученных чисел и поместить ее в переменную SUM.

Определение среднего из трех чисел оформить в виде процедуры. Параметры передать через стек. Результат вернуть через регистр AL.

Задание 4. Дано:

три массива чисел-слов без знака: X – 20 чисел, Y – 30 чисел, Z – 16 чисел;

SUM – переменная – двойное слово.

Найти максимум в каждом из массивов, а затем вычислить сумму этих максимумов. Полученную сумму поместить в переменную SUM.

Вычисление максимума оформить в виде процедуры. Параметры передать через регистры. Результат вернуть в регистре DX.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]