close

Вход

Забыли?

вход по аккаунту

?

Assembler lr3 v2

код для вставкиСкачать
Ассемблер. Лабораторная работа № 3
1) В программе необходимо реализовать функцию обработки элементов массива используя команды сравнения, переходов и циклов на встроенном ассемблере.
2) Результат - целочисленный, возвращается из функции регистре eax.
3) Массив передаётся в качестве параметра функции.
4) В программе реализовать вывод результата на экран.
5) В качестве комментария к каждой строке необходимо указать, какое действие выполняет команда относительно массива.
Пример Найти количество элементов массива A={a[i]}, которые удовлетворяют условию: b <= a[i] <= d.
__asm{
xoresi,esi; подготовим регистр индекса в массиве
xoredi,edi; счётчик количества элементов
movebx,mas; ebx указывает на начало массива
movecx,size; счётчик цикла по всем элементам
; массива
jcxzexit; завершить если длина массива 0
begin_loop:
moveax,[ebx + esi*4]; определяем текущий элемент
movedx, d; подготовка сравнения с d
cmpeax,edx;сравнение a[i] и d
jgend_loop;если больше, то завершаем цикл
movedx, b; подготовка сравнения с b
cmpeax,edx;сравнение a[i] и b
jlend_loop;если меньше, то завершаем цикл
incedi;элемент удовлетворяет условию, ; увеличиваем счётчик
end_loop:
incesi; переходим к следующему элементу
loop begin_loop; повторяем цикл для всех элементов
; массива
exit:moveax,edi; возвращаем количество элементов
}
Варианты заданий
1) Найти произведение элементов массива A={a[i]}, удовлетворяющих условию: b <= a[i] <= d.
2) Найти сумму элементов массива A={a[i]}, удовлетворяющих условию: b <= a[i] <= d.
3) Найти сумму положительных элементов массива A={a[i]}, удовлетворяющих условию: b <= a[i].
4) Найти сумму отрицательных элементов массива A={a[i]}, удовлетворяющих условию: a[i] <= d.
5) Найти количество отрицательных элементов массива A={a[i]}, которые удовлетворяют условию: a[i] <= d.
6) Найти количество положительных элементов массива A={a[i]}, которые удовлетворяют условию: b <= a[i] <= d.
7) Найти количество ненулевых элементов массива A={a[i]}, которые удовлетворяют условию: b <= a[i] <= d.
8) Найти сумму кубов всех положительных элементов массива A={a[i]}.
9) Найти сумму квадратов всех отрицательных элементов массива A={a[i]}.
10) Найти сумму кубов всех отрицательных элементов массива A={a[i]}.
11) Найти сумму квадратов всех положительных элементов массива A={a[i]}.
12) Найти разность количества положительных и отрицательных элементов массива A={a[i]}.
13) Найти разность суммы положительных и суммы отрицательных элементов массива A={a[i]}.
14) Найти произведение положительных элементов массива A={a[i]}, удовлетворяющих условию: b <= a[i].
15) Найти произведение отрицательных элементов массива A={a[i]}, удовлетворяющих условию: a[i] <= d.
16) Найти произведение кубов всех положительных элементов массива A={a[i]}.
17) Найти произведение квадратов всех отрицательных элементов массива A={a[i]}.
18) Найти произведение кубов всех отрицательных элементов массива A={a[i]}.
19) Найти произведение квадратов всех положительных элементов массива A={a[i]}.
20) Найти сумму кубов всех отрицательных элементов массива A={a[i]}, удовлетворяющих условию: a[i] <=d.
21) Найти сумму квадратов всех положительных элементов массива A={a[i]}, удовлетворяющих условию: a[i] >= b.
22) Найти сумму квадратов всех отрицательных элементов массива A={a[i]}, удовлетворяющих условию: a[i] <= d.
23) Найти сумму кубов всех положительных элементов массива A={a[i]}, удовлетворяющих условию: a[i] >=b.
24) Найти минимальный элемент в массиве A={a[i]} и подсчитать количество его вхождений.
25) Найти максимальный элемент в массиве A={a[i]} и подсчитать количество его вхождений. Показатели работы:
ПоказательСложностьПояснениеТочность2Реализованы необходимые проверкиОптимальность1Отсутствие "лишних" действийПолнота1Необходимые комментарииОригинальность1Вопрос по коду2Контрольный вопрос3Бонус/Штраф1
Контрольные вопросы к лабораторной работе № 3
1. Регистры микропроцессора.
2. Регистр флагов.
3. Команда пересылки данных общего назначения.
4. Команды преобразования данных.
5. Команды сложения и вычитания.
6. Команда умножения.
7. Команда деления.
8. Команды сдвига.
9. Команда безусловного перехода.
10. Команда сравнения.
11. Логические команды.
12. Команды условного перехода.
13. Команды организации циклов.
14. Косвенная адресация.
15. Базово-индексная адресация.
16. Масштабирование индексных регистров
Документ
Категория
Рефераты
Просмотров
199
Размер файла
53 Кб
Теги
lr3, assembler
1/--страниц
Пожаловаться на содержимое документа