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 |
Пример:
0 комментариев