Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod.rtf
Скачиваний:
10
Добавлен:
09.11.2019
Размер:
177.25 Кб
Скачать

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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]