
- •2202. Целью курса является изучение принципов построения
- •In out | разряды
- •000 До fff. В каждом слове памяти могут храниться четыре
- •1.2 Язык ассемблера простой эвм
- •4. Псевдокоманды указывают ассемблеру, каким образом разместить
- •1.2 Структуры данных ассемблера и алгоритм его работы
- •1.2 Пpимеpы использования макpоязыка. Обсуждение.
- •2. Имеется два макроопределения, предназначенных для
1.2 Язык ассемблера простой эвм
При программировании непосредственно на машинном
языке, или в машинных кодах, необходимо явно указывать коды
команд и адреса операндов. Программирование в кодах
оказывается неудобным, малопроизводительным, делает тексты
программ трудными для человеческого восприятия и очень
затрудняет изменение программы во время отладки. При
программировании на языке ассемблера также приходится в
явном виде записывать все команды и данные, но в отличие от
программирования на машинном языке имеется возможность
комментировать программы и использовать символическую запись
кодов операций и адресов памяти.
АССЕМБЛЕРОМ называется программа, которая выполняет
перевод программы, написанной на языке ассемблера на
машинный язык. Программа, написанная на языке ассемблера
называется исходной, а ее эквивалент на машинном языке -
объектной. Ассемблер, таким образом, выполняет
преобразование исходной программы в объектную. Такое
преобразование называется трансляцией или ассемблированием.
Формат записи предложений на языке ассемблера и
правила этого языка в значительной степени определяются
системой команд и структурой ЭВМ, для которой этот язык
разработан. Вместе с тем, языки ассемблера различных ЭВМ, в
том числе и язык ассемблера простой ЭВМ, имеют много общего.
Язык ассемблера простой ЭВМ несложен и построен в
соответствии с правилами, типичными для многих настоящих
языков ассемблера.
Основные правила языка ассемблера Гипотетической ЭВМ:
1. Каждое предложение языка ассемблера занимает одну строку
2. Если в первой позиции стоит символ '*',то эта строка являет-
ся комментарием.В строке коммнетария допускаются любые
символы.
3. Операторы языка ассемблера состоят из четырех полей и имеют
следующий формат:
МЕТКА КОД_ОПЕРАЦИИ ОПЕРАНД ;КОММЕНТАРИЙ
Поля отделяются друг от друга одним или несколькими
пробелами а внутри полей пробелы не допускаются.Поля метки,
операнда и коммнетария могут быть пустыми.
Метка должна начинаться с первой позиции строки, а
если в первой позиции стоит пробел, то полагается, что метка
отсутствует и следующие за пробелом символы образуют код
операции (КОП).В качестве метки может использоваться любая
последовательность букв,цифр и символа '_' (подчеркивание),
длиной не более восьми символов. Метка не может начинаться с
шестнадцатиричной цифры (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).
Все метки использованные в программе должны быть различными.
В качестве кода операции могут использоваться
мнемонические коды команд (приведенные в Таблице 1) и
псевдокоманды ассемблера (BSS,CON,END,EQU,ORG).
Операндом может быть конструкция одного из
перечисленных типов :
1) '*'
2) 'КОНСТАНТА БЕЗ ЗНАКА'
3) '=КОНСТАНТА'
4) 'ИМЯ'
5) '*+КОНСТАНТА БЕЗ ЗНАКА' или '*-КОНСТАНТА БЕЗ ЗНАКА'
6) '*+ИМЯ' или '*-ИМЯ'
7) 'ИМЯ+КОНСТАНТА БЕЗ ЗНАКА' или 'ИМЯ КОНСТАНТА БЕЗ ЗНАКА'
8) 'ИМЯ+ИМЯ' 'ИМЯ-ИМЯ'
9) 'КОНСТАНТА'
где:
'ИМЯ' - последовательность букв, цифр и символов '_',
совпадающая с одной из меток прграммы.
'КОНСТАНТА БЕЗ ЗНАКА' - последовательность
шестнадцатиричных цифр, длина которой не превышает трех.
'КОНСТАНТА' - константа без знака, длиной не более
четырех шестнадцатиричных цифр, которой может предшествовать
знак.
'*' - означает адрес команды, в поле операнда которой
она написана.
'=КОНСТАНТА' - 'Самоопределенная константа'(или'Литерал').
Литерал позволяет указывать константу непосредственно
в поле операнда команды. При трансляции команд, содержащих
литералы, ассемблер автоматически создает строки, в которые
помещает литералы, а в команды, ссылающиеся на литералы
проставляет соответствующие адреса. Литералы могут
использоваться только в командах :
ADD, SUB, MUL, DIV, LDA, LDX, LDY, OUT.