Программирование на Ассемблере
Используется в
макроопределениях, чтобы избежать повторения меток. Например:
x?0: bsr pline ;преобразуется в xNNN: bsr pline, где NNN -
уникальный номер
illegal
задает несуществующую команду процессора
globl помечает метку как глобальную. Используется совместно с опцией \"l\"
Итак, после трансляции в памяти находится машинная программа, готовая к
выполнению. С помощью запроса \"h\", Вы можете узнать размер кода программы и
ее начальный адрес. Начальный и конечный адреса выводятся в
шестнадцатеричной системе счисления, а размер - в десятичной:
Work рабочая область памяти
Src исходный текст программы
RelC таблица смещений кода
RelD таблица смещений данных
Code код программы
Data область данных
Неудобно каждый раз при запуске программы вводить ее адрес, поэтому имеет
смысл помечать начало программы в исходном тексте (например, меткой \"run:\")
Тогда для запуска программы можно использовать команду
g run
Запрос \"g\" (Go) является одним из запросов встроенного отладчика системы
SEKA. Приведем весь список запросов отладки:
x вывести содержимое регистров
xd вывести и изменить содержимое регистра
gn начать выполнение программы с адреса n. Система запросит адреса
контрольных точек
jn аналогично \"gn\", только управление передается по команде JSR.
Программа должна завершаться командой RTS
qn вывести содержимое памяти с адреса n. Можно также указать формат
вывода, например q.w $10000
nn дизассемблировать область памяти с адреса n
an начать ввод ассемблерных команд с адреса n
mn начать редактирование памяти начиная с адреса n. Прервать ввод можно
клавишей
sn выполнить n команд, начиная с текущей
f заполнить область памяти. Все параметры запрашиваются отдельно
c выполнить копирование одной области памяти в другую, параметры
запрашиваются отдельно
? напечатать значение выражения или адрес метки
Например: ? run+$1000-256
a задать последовательность команд для эмуляции запуска программы из CLI
! закончить работу с системой SEKA после ввода подтверждения
На примере запроса \"?\" мы показали, как SEKA может вычислять значения
выражений.
|