Директива определения типа микропроцессора
Model flat, stdcall; задание линейной модели памяти Data; директива определения данные _a dw 5; запись в переменную с именем _а числа 5 _b dw 27; запись _b = 16h _c dw 86; запись _c = 56h _e dw 1986; запись _e = 7C2h _d dw 1112; запись _d = 458 Res dw 0; резервирование памяти для сохранения переменной res Code; директива начала сегмента команд start: Mov edx, 0; очистка регистров Mov ebx, 0; очистка регистров Mov ecx, 0; очистка регистров mov ах, _e; в регистр ах заносим число _e = 7C2h Mul _d; умножаем _e на _d SHL edx, 16; делаем сдвиг на 16 Mov dx, ax Push edx; заталкиваем значение в стек Mov edx, 0 Mov ах, _e Mov cx, _b Div cx; делим содержимое ах на содержимое cx Pop ecx; достаем из стеку значения Sub ecx, eax; отнимаем Mov ах, _a Sub eax, ecx Mov res, eax Ret; возвращение управление ОС End start; окончание программы с именем _start Результат работы программы:
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ 1. Изучить приведенный теоретический материал к лабораторной работе. 2. В соответствии с вариантом задания написать программу на ассемблере. 3. Оттранслировать программу в объектный код. 4. Провести отладку программы и проверить получаемые результаты.
СОДЕРЖАНИЕ ОТЧЕТА Отчет должен включать: § титульный лист; § описание цели работы; § описание задания на лабораторную работу; словесные пояснения к алгоритму решения задачи и схему программы (обращаю Ваше внимание на то, что понятие массива и индексации массива весьма условны, ибо в памяти ЭВМ элементы массива располагаются последовательно, строка за строкой. Поэтому физическая структура двумерного массива и вектора (одномерного массива) оказываются одинаковыми. Отличие двумерного массива и вектора заключается в интерпретации области памяти, отведенной этим структурам. Наращивание индекса элемента структуры определяется алгоритмом обработки структуры данных); § листинги программ; § результаты выполнения программ; § выводы.
ВАРИАНТЫ ЗАДАНИЙ. Написать и отладить программы. 1. Подсчитать количество четных (нечетных) элементов двухмерного массива а) элементы массива однобайтовые; б) элементы массива двухбайтовые. 2. Подсчитать сумму элементов строк (столбцов) двухмерного массива а) элементы массива однобайтовые; б) элементы массива двухбайтовые. 3. Подсчитать сумму всех элементов двухмерного массива и найти медиану (среднее арифметическое). а) элементы массива однобайтовые; б) элементы массива двухбайтовые. 4. Подсчитать суммы положительных и отрицательных элементов двухмерного массива и определить, какая из них по абсолютной величине больше а) элементы массива однобайтовые; б) элементы массива двухбайтовые. Примечание к заданиям 1-2: в контексте определения четности-нечетности могут быть использованы различные команды ассемблера: - команда логического умножения (конъюнкции). При этом учитывается то обстоятельство, что четные положительные числа имеют значение младшего двоичного разряда равное 0, а нечетные – 1. То есть, если результат выполнения команд mov al, mas[si]
|