
- •2202. Целью курса является изучение принципов построения
- •In out | разряды
- •000 До fff. В каждом слове памяти могут храниться четыре
- •1.2 Язык ассемблера простой эвм
- •4. Псевдокоманды указывают ассемблеру, каким образом разместить
- •1.2 Структуры данных ассемблера и алгоритм его работы
- •1.2 Пpимеpы использования макpоязыка. Обсуждение.
- •2. Имеется два макроопределения, предназначенных для
4. Псевдокоманды указывают ассемблеру, каким образом разместить
программу в памяти, где поместить данные, с какого адреса
начать выполнение программы. В языке ассемблера простой
ЭВМ предусмотрено 5 псевдокоманд : BSS, CON, END, EQU, ORG.
Имена на которые ссылаются в псевдокомандах должны быть
определены до использования.
Операнд псевдокоманды ORG задает адрес, по которому
должна быть размещена следующая команда. Если псевдокоманда
ORG в прграмме отсутствует (что допустимо, но нежелательно)
то ассемблер размещает команды и данные с нулевого адреса.
Псевдокоманда EQU об'являет эквивалентными значения
метки и выражения, стоящего в поле операнда. Данное
выражение должно представлять собой адрес, то есть лежать в
интервале [000,FFF].
Псевдокоманда CON служит для описания числовой или
адресной константы. Ее операндом может константа или адресное
выражение.
Псевдокоманда BSS резервирует область для данных
(например с ее помощью можно определить стек программы ).Ее
операнд определяет количество слов, резервируемых
ассемблером для последующего хранения данных.Операндом
псевдокоманды BSS может быть только константа без знака.
Псевдокоманда END указывает на конец программы. Ее
операнд определяет стартовый адрес (адрес с которого
начнется выполне- ние программы ).По умолчанию он берется
равным адресу размещения программы. Псевдокоманда END
обязательно должна присутствовать в тексте программы, иначе
ее отсутствие приведет к ошибке трансляции.
Пример:
ORG 10
* ПРОГРАММА РАЗМЕЩАЕТСЯ С АДРЕСА 10
START IN ;ВВОД ЧИСЛА
STY _A ;ЗАПИСЬ В ЯЧЕЙКУ А
IN ;ВВОД ЧИСЛА
STY _B ;ЗАПИСЬ В ЯЧЕЙКУ В
LDA _A
ADD _B ;С = А + В
STA _C
MYA
OUT ;ВЫВОД РЕЗУЛЬТАТА
STOP
_A BSS 1
_B BSS 1
_C BSS 1
END START
2. Порядок выполнения работы
1. После собеседования получить вариант задания.
2. Разработать комментированнную программу, выполняющую поставленную
задачу, а также контрольный пример к ней. Язык программирования -
язык ассемблера простой ЭВМ.
3. Провести тестирование и отладку разработанной программы.
4. Получить листинг отлаженной программы и результаты выполнения
контрольного примера.
5. Составить отчет по pаботе. Отчет должен содержать
- развернутую постановку задачи, включая необходимое
математическое обоснование;
- листинг трансляции исходной программы;
- результаты выполнения контрольного примера.
3. ВАРИАНТЫ ЗАДАНИЙ
1. Вычисление наибольшего общего делителя двух введенных чисел.
2. Сортировка введенного массива.
3. Найти пересечение двух множеств чисел, представленных двумя
введенными массивами
4. Найти объединение двух множеств чисел, представленных двумя
введенными массивами
5. Вычисление числа элементов массива, делящихся нацело на
заданное число.Длина массива, массив и делитель вводятся.
6. Вычисление скалярного произведения двух N-мерных векторов.
Длина N и векторы (массивы) вводятся.
7. Поменять местами элементы двух массивов, если элемент первого
массива больше соответствующего элемента второго массива.
Массивы и их длина вводятся.
8. Вычисление произведения двух многочленов. Степени многочленов
и их коэффициенты вводятся.
9. Вычисление значения полинома. Коэффициенты полинома и
значение аргумента вводятся.
10.Двоичный поиск в упорядоченном массиве. Массив и число
вводятся. Результат - номер найденного элемента массива.
11.Подсчет числа элементов массива, находящихся в заданных
границах. Длина массива, массив и границы вводятся.
12.Программа работы с простыми дробями( сложение,вычитание,
умножение, деление).
13.Вычисление квадрата расстояния между двумя точками в N-мерном
пространстве. Размерность пространства и координаты вводятся.
14.Подсчет числа элементов массива, модуль которых превосходит
заданное число. Длина массива, массив и число вводятся.
15.Перестановка элементов введенного массива в обратном порядке.
4. Вопросы и упражнения
1. Укажите, какие из приведенных строк ассемблера
гипотетической ЭВМ являются ошибочными:
А lda *
a1a sta xyz
16 goto 25
lda G(11)
.A equ *+3
1f lda 13 .
2. Что означают команды jmp *-10, jmp *, jmp 10 ?
3. В чем разница между командами add =25 и add 25 ?
4. Почему использование литералов в командах sta, stx, jmp
некорректно ?
ЛАБОРАТОРНАЯ РАБОТА N 2 ПРОЕКТИРОВАНИЕ МОДУЛЯ АССЕМБЛЕРА
---------------------------------------------------------
Цель работы: изучение структуры ассемблера и алгоритма
трансляции с языка программирования низкого уровня (языка
ассемблера); разработка, программирование и отладка
программного модуля, выполняющего одну из задач
ассемблирования.
1. МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ПОДГОТОВКЕ К ЛАБОРАТОРНОЙ РАБОТЕ
1.1 Общие сведения
Ассемблером называется программа, которая обрабатывает
текст программы, написанной на языке ассемблера, и создает
эквивалентную ей программу на машинном языке. Кроме того
ассемблер формирует листинг, содержащий текст исходной
программы, адреса, коды команд, и констант, сообщения об
ошибках и некоторые другие данные. Кроме программы на
машинном языке и листинга большинство реально существующих
ассемблеров создают необходимую информацию для загрузчика. В
настоящей лабораторной работе основное внимание уделено
процессу преобразования текста программы в
последовательность машинных кодов. Однако следует помнить,
что во всех схемах ассемблирования, за исключением самых
простых, ассемблер должен формировать необходимые данные для
загрузчика.
Если ассемблер выполняется не на той машине, для
которой написана транслируемая программа, то такой ассемблер
называется кросс-ассемблером. Кросс-ассемблеры широко
применяются, например, для разработки программного
обеспечения микропроцессорных систем. В этом случае
кросс-ассемблер выполняется на персональной или малой ЭВМ,
называемой инструментальной машиной, а система на которой
впоследствии будет выполняться транслируемая программа,
называется целевой или объектной машиной. Аналогичный подход
используется и в том случае, когда разработка программного
обеспечения ведется для вновь проектируемой ЭВМ параллельно с
разработкой аппаратной части.
Содержанием настоящей работы является разработка
подпрограмм, работающих в составе кросс-ассемблера простой
ЭВМ. Инструментальной машиной в данном случае служит
персональная ЭВМ, а целевой - гипотетическая ЭВМ.