Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Работа с массивами в ассемблере

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 6.11.2024

Лабораторная работа №3

Работа с массивами в ассемблере

Теоретическая часть

Массивы представляют собой упорядоченные наборы однотипных элементов. Массив характеризуется типом элементов, числом элементов и способом их нумерации. Число элементов называется размером, или длиной, массива; способ нумерации описывается одномерным целочисленным массивом, называемым формой массива.

Число измерений называется рангом массива; число элементов в измерении называется экстентом массива в данном измерении. Целочисленный массив, длина которого равна рангу заданного массива, а каждый его элемент равен экстенту массива в данном измерении, называется формой массива. Массивы, имеющие одинаковую форму называются совместимыми.

Массив — это последовательность элементов, доступ к которым осуществляется при помощи целочисленного индекса. Индексы всегда следуют по порядку, и поэтому очевидным является использование “циклов” для работы с массивами.

Можно обращаться не только к массиву целиком, но и к группе его элементов, которые называются сечениями массива. Сечения массива очень эффективное средство, которое позволяет устранить многие циклы и повысить читаемость программы.

Массивы, доступ к элементам которых осуществляется при помощи одного индекса, называются одномерными массивами или векторами.

При работе с массивами необходимо четко представлять себе, что все элементы массива располагаются в памяти компьютера последовательно. Само по себе такое расположение ничего не говорит о назначении и порядке использования этих элементов. И только лишь программист с, помощью составленного им алгоритма обработки определяет, как нужно трактовать последовательность байтов, составляющих массив. Так, одну и ту же область памяти можно трактовать одновременно и как одномерный, и как двухмерный массив. Все зависит только от алгоритма обработки этих данных в конкретной программе. Сами по себе данные не несут никакой информации о своем «смысловом», или логическом, типе.

Те же соображения можно распространить и на индексы элементов массива. Ассемблер не подозревает ни об их существовании, ни об их численных смысловых значениях. Для того чтобы локализовать определенный элемент массива, к его имени нужно добавить индекс. Так как мы моделируем массив, то должны позаботиться и о моделировании индекса. В языке ассемблера индексы массивов — это обычные адреса, но с ними работают особым образом. Другими словами, когда при программировании на ассемблере мы говорим об индексе, то, скорее, подразумеваем под этим не номер элемента в массиве, а некоторый адрес. Нумерация элементов массива в ассемблере начинается с нуля.

В общем случае для получения адреса элемента в массиве необходимо начальный (базовый) адрес массива сложить с произведением индекса (номер элемента минус единица) этого элемента на размер элемента массива:

база + (индекс • размер элемента).

Архитектура процессора предоставляет довольно удобные программно-аппаратные средства для работы с массивами. К ним относятся базовые и индексные регистры, позволяющие реализовать несколько режимов адресации данных. Используя данные режимы адресации, можно организовать эффективную работу с массивами в памяти. (см. лабораторную работу №1.)

Работу с массивами в ассемблере рассмотрим на примерах.

Практическая часть.

Пример №1. Найти сумму квадратов элементов массива.

Решение:

Результат работы программы:

Пример №2. Расположить элементы массива по возрастанию.

Решение:

Результат работы программы:

Задания для самостоятельной работы

Ознакомьтесь с теоретическим материалом.

Разберите все примеры из практической части лабораторной работы, т.е. наберите и просмотрите их работу.

Выполните индивидуальные задания.

Индивидуальные варианты

1. Составить программу для анализа элементов массива

1.1.1. Дан массив целых чисел, состоящий из 10 элементов.

найти сумму четных элементов, имеющих нечетные индексы;

найти номер последнего положительного элемента.

1.1.2. Дан массив целых чисел, состоящий из 15 элементов.

найти среднее арифметическое отрицательных элементов;

вывести индексы нулевых элементов.

1.2.1. Дан массив целых чисел, состоящий из 15 элементов.

найти среднее арифметическое положительных элементов;

вывести количество отрицательных элементов.

1.2.2. Дан массив целых чисел, состоящий из 10 элементов.

найти произведение нечетных элементов;

найти номер первого нулевого элемента.

1.3.1. Дан массив целых чисел, состоящий из 15 элементов. Заполнить его с клавиатуры.

найти сумму элементов, кратных 3;

вывести количество тех элементов, значения которых меньше значения предыдущего элемента (начиная со второго).

1.3.2. Дан массив целых чисел, состоящий из 10 элементов.

найти произведение четных элементов;

определить, есть ли в данном массиве нулевые элементы.

1.4.1. Дан массив целых чисел, состоящий из 15 элементов.

найти сумму отрицательных элементов, значения которых больше заданного числа A;

количество тех элементов, значения которых положительны и не превосходят заданного числа B.

1.4.2. Дан массив целых чисел, состоящий из 10 элементов.

найти сумму отрицательных элементов, модуль которых не превосходит 5;

номер последней пары соседних элементов с разными знаками.

1.5.1. Дан массив целых чисел, состоящий из 15 элементов.

найти сумму элементов, имеющих четное значение;

вывести количество тех элементов, значения которых больше заданного числа А.

1.5.2. Дан массив целых чисел, состоящий из 10 элементов.

найти сумму элементов, имеющих нечетное значение;

определить, есть ли в данном массиве положительные элементы, кратные k (k вводится с клавиатуры).

1.6.1. Дан массив целых чисел, состоящий из 15 элементов.

найти сумму элементов, имеющих нечетные индексы;

подсчитать количество элементов массива, значения которых больше заданного числа А.

1.6.2. Дан массив целых чисел, состоящий из 10 элементов.

найти сумму элементов, имеющих четные индексы;

найти номер первого отрицательного элемента.

1.7.1. Дан массив целых чисел, состоящий из 15 элементов.

найти сумму положительных элементов, значения которых меньше 10;

вывести количество тех элементов, значения которых кратны 3.

1.7.2. Дан массив целых чисел, состоящий из 10 элементов.

найти сумму элементов, значения которых больше заданного числа A;

определить, есть ли пара соседних элементов с суммой, равной заданному числу B.

1.8.1. Дан массив целых чисел, состоящий из 15 элементов.

найти удвоенную сумму положительных элементов;

вывести количество тех элементов, значения которых больше значения предыдущего элемента (начиная со второго).

1.8.2. Дан массив целых чисел, состоящий из 10 элементов.

найти удвоенную сумму отрицательных элементов;

определить количество пар соседних элементов с одинаковыми знаками.

2. Составить программу для обработки элементов массива

2.1.1. Дан массив из четного числа элементов. Отсортировать первую половину этого массива по возрастанию, а вторую по убыванию.

2.1.2. Перенести в конец массива все отрицательные элементы.

2.2.1. Заменить нулями все элементы массива, равные максимальному.

2.2.2. Перенести в начало массива все положительные элементы.

2.3.1. Заменить максимальные элементы массива на минимальные.

2.3.2. Заменить последний положительный элемент массива на первый элемент массива.

2.4.1. Заменить нулями элементы массива между минимальными и максимальными, кроме их самих.

2.4.2. Перенести в начало массива максимальный элемент

2.5.1. Заменить минимальный положительный элемент массива нулем.

2.5.2. Заменить элементы массива с k1-го по k2-й на те же элементы в обратном порядке.

2.6.1. Заменить первый отрицательный элемент массива на последний элемент массива.

2.6.2. Найти максимальный элемент среди отрицательных элементов и поменять его местами с минимальным положительным.

2.7.1. Заменить первые k элементов массива на максимальный элемент.

2.7.2. Перенести в конец массива минимальный элемент.

2.8.1. Заменить минимальный по модулю отрицательный элемент массива нулем.

2.8.2. Отсортировать массив по убыванию начиная с минимального элемента.




1. Конфликтология в социальной работе для студентов III курса социального факультета Специальность социа
2. на тему- Технология возделывания гречихи в Скопинском районе Рязанской области Выполнил- студент 4 ку
3. Отан тарихы ~аза~станда~ы д~нгендер- саны мен ~~рамыны~ динамикасы 18972007 жж
4. тема отличается от земной тем что ось ОYg направлена по местной вертикали вверх Стартовая O0X
5.  Теоретические и нормативноправовые основы управления социальноэкономическим развитием муниципального о
6. Введение1
7. Образ Лафонтена на страницах русской печати XVIII - начала XIX веков и особенности его восприятия в России
8. это соперничество предприятий на рынке направленное на овладение вниманием потенциальных потребителей
9. . Орг. начало урока.
10. І.П. хворого- вік- стать- ч Показ.html
11. ТЕМА- ПОБУДОВА ПОВЗДОВЖНЬОГО ПРОФІЛЮ РІКИ
12. Жан Батист Мольер Плутни Скапена
13. тематики Пифагор утверждал что достиг преклонного возраста 90 лет только потому что постоянно употреблял
14. Мафия-В игре участвуют десять человек
15.  Судебное разбирательство- понятие задачи и значение Судебное разбирательство решающая стадия уголовн
16. Административное право предмет метод и система
17. Тема 1 Риск как экономическая категория 1
18. тематический диктант 7
19. Схема истории болезни для самоподготовки студентов по внутренней патологи
20. Глава II ПРАВИЛА ОТНОСЯЩИЕСЯ К НАБЛЮДЕНИЮ СОЦИАЛЬНЫХ ФАКТОВ Первое и основное правило состоит в том что