Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
150
Добавлен:
30.05.2020
Размер:
247.81 Кб
Скачать

Приложение Справочник по языку ассемблера «ЛамПанель»

Регистры:

R0, R1, R2, R3 регистры общего назначения;

PC программный счетчик;

SP указатель стека;

PS регистр состояния:

бит 0 – знак (бит N, negative),

бит 1 – равенство нулю (бит Z, zero)

бит 2 – бит переноса (бит C, carry).

Обозначения при описании форматов команд:

n число в шестнадцатеричной системе счисления

Rx некоторый регистр общего назначения

Px некоторый порт

Метки:

Метка – это последовательность символов, заканчивающаяся двоеточием. Кроме метки, в строке не должно быть других символов.

Основные команды:

NOP – нет операции

STOP – останов

MOV Ry,Rx – пересылка Rx:=Ry

MOV n,Rx – пересылка Rx:=n

ADD Ry,Rx – сложение Rx:=Rx+Ry

ADD n,Rx – сложение Rx:=Rx+n

SUB Ry,Rx – вычитание Rx:=RxRy

SUB n,Rx – вычитание Rx:=Rxn

CMP Ry,Rx – сравнение (установка флагов по разности RxRy)

CMP n,Rx – сравнение (установка флагов по разности Rx–n)

MUL Ry,Rx – умножение Rx:=Rx*Ry

MUL n,Rx – умножение Rx:=Rx*n

DIV Ry,Rx – деление Rx:=Rx div Ry

DIV n,Rx – деление Rx:=Rx div n

Логические операции:

NOT Rx – логические «НЕ» (инверсия) Rx:=not Rx

AND Ry,Rx – логическое «И» (конъюнкция) Rx:=Rx and Ry

AND n,Rx – логическое «И» (конъюнкция) Rx:=Rx and n

OR Ry,Rx – логическое «ИЛИ» (дизъюнкция) Rx:=Rx or Ry

OR n,Rx – логическое «ИЛИ» (дизъюнкция) Rx:=Rx or n

XOR Ry,Rx – «исключающее ИЛИ» Rx:=Rx xor Ry

XOR n,Rx – «исключающее ИЛИ» Rx:=Rx xor n

Сдвиги:

SHL n,Rx – логический сдвиг влево Rx:=Rx shl n

SHR n,Rx – логический сдвиг вправо Rx:=Rx shr n

SAR n,Rx – арифметический сдвиг вправо Rx:=Rx sar n

ROL n,Rx – циклический сдвиг влево Rx:=Rx rol n

ROR n,Rx – циклический сдвиг вправо Rx:=Rx ror n

RCL n,Rx – циклический сдвиг влево через перенос Rx:=Rx rcl n

RCR n,Rx – циклический сдвиг вправо через перенос Rx:=Rx rcr n

Байтовые команды:

MOVB Ry,Rx – пересылка младшего байта Rx:=Ry

MOVB n,Rx – пересылка младшего байта Rx:=n

CMPB Ry,Rx – сравнение (установка флагов по разности байтов RxRy)

CMPB n,Rx – сравнение (установка флагов по разности байтов Rx–n)

SHLB n,Rx – логический сдвиг байта влево Rx:=Rx shl n

SHRB n,Rx – логический сдвиг байта вправо Rx:=Rx shr n

SARB n,Rx – арифметический сдвиг байта вправо Rx:=Rx sar n

ROLB n,Rx – циклический сдвиг байта влево Rx:=Rx rol n

RORB n,Rx – циклический сдвиг байта вправо Rx:=Rx ror n

RCLB n,Rx – циклический сдвиг байта влево через перенос Rx:=Rx rcl n

RCRB n,Rx – циклический сдвиг байта вправо через перенос Rx:=Rx rcr n

SWAPB Rx – поменять местами байты в регистре Rx

Переходы:

JMP адрес или метка – безусловный переход

JGE адрес или метка – если больше или равно

JL адрес или метка – если меньше

JNZ адрес или метка – если не нуль

JZ адрес или метка – если нуль

JLE адрес или метка – если меньше или равно

JG адрес или метка – если больше

Процедуры:

CALL адрес или метка – вызов процедуры

SYSTEM номер – вызов процедуры из ПЗУ с заданным номером

RET – возврат из процедуры

Размещение данных:

DATA число – число записывается в память как слово

DATA "строка" – символьная строка записывается в память

Работа со стеком:

PUSH Rx – сохранить в стеке регистр Rx

POP Rx – восстановить из стека регистр Rx

Работа с портами, которые управляют лампочками:

Порты: P0, P1, P2, P3, P4, P5, P6, P7. Все порты доступны на чтение и запись.

IN Py,Rx – ввод из порта Py в регистр Rx

OUT Rx,Py – вывод из регистра Rx в порт Py

Относительная адресация:

MOV @метка,Rx – записать адрес метки в регистр Rx

(Rx) – операнд находится в ячейке, адрес которой записан в регистре Rx

(Rx)+ – то же самое, но после выполнения операции значение Rx увеличивается на 2 для команды, работающей со словом, и на 1 для байтовой команды

© К.Ю. Поляков, 2010

http://kpolyakov.narod.ru

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