ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ "САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М. А. БОНЧ-БРУЕВИЧА"
Факультет инфокоммуникационных сетей и систем
Кафедра программной инженерии и вычислительной техники
Лабораторная работа №4
«ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ»
по дисциплине «Машинно-зависимые языки программирования»
Выполнил:
студент 1 курса
дневного отделения
группы ИКПИ-##
Фамилия И. О.
Санкт-Петербург 2019
А. Постановка задачи
Задав одномерный массив целочисленных данных в одном из заданных форматов (signed/unsigned char — byte, signed/unsigned int— word, signed/unsigned long — dword), реализовать обработку массива, как указано в варианте. Длина массива N. Исходные данные задать самостоятельно, учитывая формат элементов массива А.
В программе должны быть предусмотрены функции ввода-вывода элементов массива и его обработки. Исходные данные должны вводиться корректно (организовать проверку). Тип результата определяется из контекста задачи.
Найти сколько положительных элементов массива удовлетворяют условию .
Б. Разработка алгоритма
MS DOS. TASM. SIGNED INT. 5 элементов в массиве.
Регистры 16-битные (AX, BX…). Используются функции DOS (int 21h).
Программа на ASM:
-
Вывод пользовательского приглашения к вводу: "ENTER C: ".
-
Ввод пользователем числа со знаком C.
-
Если число введено неверно, то вывод: "INCORRECT. " — и возврат к п. 2.
-
Конвертирование числа из ASCII формата в BIN.
-
Вывод пользовательского приглашения к вводу: "ENTER D: ".
-
Ввод пользователем числа со знаком D.
-
Если число введено неверно, то вывод: "INCORRECT. " — и возврат к п. 6.
-
Конвертирование числа из ASCII формата в BIN.
-
Вывод пользовательского приглашения к вводу чисел массива: "ENTER 5 ELEMENTS: ".
-
Ввод пользователем элемента массива (число со знаком).
-
Если число введено неверно, то вывод: "INCORRECT. " — и возврат к п. 10.
-
Конвертирование числа из ASCII формата в BIN.
-
Запись полученного числа в очередной элемент массива
-
Если не было введено 5 чисел, то возврат к п. 10.
-
Вызов функции лабораторной работы.
-
Вывод результата и выход из программы.
В. Таблица идентификаторов
N |
Обозначение в задаче |
Идентификатор |
Назначение |
1 |
C |
NUMBER_C (dw) |
Входные данные |
2 |
D |
NUMBER_D (dw) |
|
3 |
Массив |
NUMBERS (dw 5) |
|
3 |
— |
MULT10 |
Промежуточные данные TASM |
4 |
— |
BIN_VALUE |
|
5 |
— |
ENDLINE |
|
6 |
— |
MESSAGE1 |
|
7 |
— |
MESSAGE2 |
|
8 |
— |
MESSAGE_ARR |
|
9 |
N |
bN (5) |
|
10 |
Результат |
RESULT |
Выходные данные |
Г. Таблица результатов
Результаты вычислений приведены ниже в таблице вычислений.
Тип |
C |
D |
Массив |
X |
Signed Word |
0 |
10 |
0, 1, 2, 9, 10 |
TASM: 5 Вручную: 5 |
0 |
10 |
0, -1, -2, -9, -10 |
TASM: 1 Вручную: 1 |
|
0 |
10 |
-1, 1, -2, 2, -3 |
TASM: 2 Вручную: 2 |
|
0 |
10 |
11, -12, 13, -14, 15 |
TASM: 0 Вручную: 0 |
|
-10 |
0 |
0, 1, 2, 9, 10 |
TASM: 1 Вручную: 1 |
|
-10 |
0 |
0, -1, -2, -9, -10 |
TASM: 1 Вручную: 1 |
|
10000 |
20000 |
1, 100, 10000, 20000, 30000 |
TASM: 3 Вручную: 3 |
|
-10000 |
10000 |
-10001, -5, 0, 5, 10001 |
TASM: 2 Вручную: 0 |