Вариант 07 Лаба 03 |
200,00 ₽
Просмотров: 701
|
Тип работы: | Контрольная |
Название предмета: | Основы системного программирования |
Тема/вариант: | Вариант 07 Лаба 03 |
Объем работы: | 5 |
ВУЗ: | СибГУТИ |
Дата выполнения: | 2013-08-12 |
Размер файла, тип файла: | 108.23 Kb, RAR |
Прикрепленные файлы: |
Курс 170 Основы системного программирования (952 Kb)
|
Тема: Работа с массивами данных
Цель работы: Научиться обрабатывать массивы данных.
Порядок выполнения работы:
ВАЖНО: Прочитайте требования к выполнению и оформлению лабораторных работ.
Задание 1Вариант 7
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
2. Выполните отладку программу с использованием отладчика TurboDebugger. Посмотрите как изменяются регистры в процессе выполнения программы.Чему равно значение переменной Max перед выходом из программы? Совпадает ли результат вычислений с реальным значением максимального элемента массива?
Задание 2
Используя предложенную выше программу, выполните второе задание. Исполнить программу с несколькими (три - четыре) различными (по количеству и по составу) массивами данных, проверить правильность результатов. Номерзаданиявыбирается в соответствии с последнейцифройпароля.
1. Составьте программу, которая вычисляет и заносит в DX номер максимального элемента массива.
2. Составьте программу для подсчета вхождений заданного целого числа в массив. Количествовхожденийдолжнонаходиться в регистре DX
3. Найти количество отрицательных чисел в массиве чисел и занести его в DX.
4. Найти сумму абсолютных величин в массиве чисел и занести ее в DX.
5. Найти количество положительных чисел в массиве чисел и занести ее в DX.
6. Заменить все отрицательные числа нулями в массиве чисел.
7. Найти среднее арифметическое чисел в массиве и занести его в DX.
8. Найти количество чисел больших 10h в массиве чисел и занести его в DX.
9. Найти наименьшее по абсолютной величине числа в массиве чисел и занести его в DX.
10. Найти количество чисел в массиве чисел больших 12h и меньших 0Afh. Результатзанести в DX.
Сообщить другу