Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / Lab_moto / 1.doc
Скачиваний:
16
Добавлен:
16.04.2013
Размер:
211.97 Кб
Скачать

Ассемблер/дизассемблер (asm - аSseMbler).

ASM <адрес>

где <адрес> представляет собой адрес начала ассемблирования/дизассемблирования программы.

Команда ASM позволяет пользователю вводить в память ОМ программу в виде мнемонических команд. После набора каждой команды и ввода ее нажатием клавиши (RETURN) происходит преобразование мнемоники в машинный код с записью его в память по указанному в команде ASM адресу. После ассемблирования команды указатель переводится на следующую свободную ячейку памяти с приглашением ко вводу следующей команды. Таким образом, строка за строкой, вводится вся программа. Платой за простоту работы с таким ассемблером является ряд существенных ограничений. Поскольку ассемблер транслирует одновременно только одну команду, он, очевидно, не может вычислить адрес, скажем, десятой команды, следующей за вводимой. Как следствие, использование меток невозможно.

Для вычисления адреса перехода, например, в команде вызова подпрограммы приходится вводить в команде вызова любой "фиктивный" адрес, вводить всю программу, после чего, когда адрес перехода становится известен, возвращаться к редактированию команды вызова и устанавливать в ней правильный адрес.

Использование нумерации строк и комментариев также невозможно.

Несмотря на описанные ограничения, команда ASM позволяет достаточно просто вводить небольшие программы (в частности, все программы настоящего лабораторного практикума могут быть введены таким образом).

Для подготовки и ассемблирования более сложных программ (например, при выполнении самостоятельных заданий) можно воспользоваться программами текстового редактора и кросс-ассемблера, которые работают на центральной ЭВМ и лишены указанных недостатков. Работа с центральной ЭВМ (сервером) подробно описана в соответствующем разделе.

Работа ассемблера завершается вводом символа "." (точка).

Пример:3

>ASM $0100

0100 00 00 00 BRSET 0,$00,$0103>NOP

0100 C9 NOP

0101 00 00 00 BRSET 0,$00,$0104>.

>

Заполнение области памяти (bf - Block Fill).

BF <адрес 1> <адрес 2> <данные>

здесь:

<адрес 1>-адрес начала блока;

<адрес 2>-адрес конца блока;

<данные>-шестнадцатиричная величина для заполнения.

Команда BFпозволяет пользователю заполнять одинаковым содержимым область памяти. Следует соблюдать осторожность при изменении внутренних служебных областей ОЭВМ (адреса портов, регистры таймера и т.д.). См. карту памяти на рис. 3.

Пример:

>BF $50 $0059 $EF

>

Установка точки останова (br - bReakpoint).

BR [<адрес>]...

Команда BRустанавливает на указанный адрес точку останова. Во время выполнения программы пользователя, остановка происходит непосредственно перед выполнением команды, адрес которой является точкой останова.

Нельзя помещать точку останова на команду програмного прерывания, так как эту команду монитор использует для обработки точек останова. Можно установить максимум 5 точек останова. После установки точки останова на экран выводятся адреса всех установленных точек останова. В одной командной строке может быть введено несколько точек останова.

Пример:

>BR $0104 $107

Brkpts=0104 0107

>BR

Brkpts=0324 0212 0100

>

Запуск программы на выполнение (g - Go to).

G [<адрес>]

где <адрес>-начальный адрес, с которого начнется выполнение программы.

Команда Gпозволяет начать выполнение программы в режиме реального времени с заданного пользователем адреса. Когда в командеGадрес не указывается, программа выполняется с текущего адреса програмного счетчика. Выполнение программы продолжается до тех пор, пока не встретится точка останова или до нажатия кнопок S1 (ABORT) или S3 (MASTER RESET) на плате ОМ.

Пример:

>G 100

Соседние файлы в папке Lab_moto