Motorola MC68HC705C8Рефераты >> Радиоэлектроника >> Motorola MC68HC705C8
Пример:
0200 А6 02 LDA #$02 Загрузить аккумулятор константой $02
Производимые действия:
$0200 $A6 [1]
$0201 $02 [2]
Объяснение:
[1] ЦП читает код операции $A6 - загрузить аккумулятор константой, следующей за кодом операции
[2] ЦП читает константу $02 по адресу $0201 и записывает ее в аккумулятор.
Команды с прямой адресацией имеют доступ к первым 256 ячейкам памяти и имеют длину два байта. Первым байтом является код команды, второй байт представляет собой младший байт адреса операнда. При использовании прямой адресации ЦП автоматически устанавливает в $00 старший байт адреса операнда. Исключение составляют команды BRSET и BRCLR, занимающие три байта и использующие прямую адресацию для доступа к операнду и относительную адресацию для определения точки перехода. В Таблице 1-3 представлены команды, которые используют режим прямой адресации к памяти.
Таблица 1-3. Команды, использующие прямую адресацию к памяти.
|
Команда |
Мнемоника |
|
Сложение с флагом переноса |
ADC |
|
Сложение |
ADD |
|
Логическое И |
AND |
|
Арифметический сдвиг влево |
ASL |
|
Арифметический сдвиг вправо |
ASR |
|
Сбросить бит в ячейке памяти |
BCLR |
|
Битовое сравнение ячейки памяти и аккумулятора |
BIT |
|
Переход, если бит n установлен |
BRCLR |
|
Переход, если бит n сброшен |
BRSET |
|
Сбросить бит в памяти |
BCLR |
|
Установить бит в памяти |
BSET |
|
Очистить |
CLR |
|
Сравнение аккумулятора и ячейки памяти |
CMP |
|
Дополнение |
COM |
|
Сравнение индексного регистра и ячейки памяти |
CPX |
|
Декремент на 1 |
DEC |
|
Исключающее ИЛИ ячейки памяти и аккумулятора |
EOR |
|
Инкремент на 1 |
INC |
|
Безусловный переход |
JMP |
|
Вызов подпрограммы |
JSR |
|
Загрузить аккумулятор содержимым ячейки памяти |
LDA |
|
Загрузить индексный регистр содержимым ячейки памяти |
LDX |
|
Логический сдвиг влево |
LSL |
|
Логический сдвиг вправо |
LSR |
|
Изменение знака |
NEG |
|
ИЛИ |
ORA |
|
Циклический сдвиг влево через флаг переноса |
ROL |
|
Циклический сдвиг вправо через флаг переноса |
ROR |
|
Вычитание с флагом переноса |
SBC |
|
Записать содержимое аккумулятора в ячейку памяти |
STA |
|
Записать содержимое индексного регистра в ячейку памяти |
STX |
|
Вычитание |
SUB |
|
Проверка знака и равенства нулю |
TST |
Пример:
0200 В6 50 LDA $50 Загрузить аккумулятор содержимым ячейки с адресом $50
Производимые действия:
$0200 $B6 [1]
$0201 $50 [2] и [3]
Объяснение:
[1] процессор читает код операции $В6 - загрузить аккумулятор, используя прямую адресацию.
[2] процессор считывает $50 по адресу $0201. $50 интерпретируется как младший байт 16-ти разрядного адреса.
[3] процессор считывает содержимое ячейки $0050 и помещает его в аккумулятор.
Команды, использующие расширенную адресацию, имеют доступ к любому адресу памяти и представлены в табл. 1-4. Длина таких команд составляет три байта, первый из которых является кодом операции, второй и третий байт - соответственно старшим и младшим байтом адреса операнда.
Таблица 1-4. Команды, использующие расширенный способ адресации.
|
Команда |
Мнемоника |
|
Сложение с флагом переноса |
ADC |
|
Сложение |
ADD |
|
Логическое И |
AND |
|
Битовое сравнение ячейки памяти и аккумулятора |
BIT |
|
Сравнение аккумулятора с ячейкой памяти |
CMP |
|
Сравнение индексного регистра с ячейкой памяти |
CPX |
|
Исключающее ИЛИ ячейки памяти и аккумулятора |
EOR |
|
Безусловный переход |
JMP |
|
Вызов подпрограммы |
JSR |
|
Загрузка аккумулятора содержимым ячейки памяти |
LDA |
|
Загрузка индексного регистра содержимым ячейки памяти |
LDX |
|
ИЛИ |
ORA |
|
Вычитание с флагом переноса |
SBC |
|
Записать содержимое аккумулятора в память |
STA |
|
Записать содержимое индексного регистра в память |
STX |
|
Вычитание |
SUB |
