Расширенная адресация
Команды расширенной адресации могут обращаться к любому адресу 64-килобайтовой карты памяти. Все команды расширенной адресации имеют длину в три байта - первый байт является операционным кодом; второй и третий байты, соответственно, старший и младший байты адреса операнда. Этот режим адресации используется в том случае, когда необходимо обращаться к памяти за пределами прямой, или нулевой, страницы ($0000 - $00FF).
Большинство ассемблеров позволяют разработчику не определять тип команды - с прямой адресацией или с расширенной. Ассемблер автоматически выбирает кратчайшую форму команды.
В таблице 6 перечислены команды, использующие расширенный режим адресации. Ниже показан пример использования расширенного режима адресации.
Машинный код Метка Операция Операнд Комментарий
ORG $50 ; Старт при $50
FCB $FF ; $50 = $FF
5F CLRX
BE50 LDX $0050 ; Прямая загрузка X
ORG $6E00 ; Старт при $6E00
FCB $FF ; $6E00 = $FF
5F CLRX
CE6E00 LDX $6E00 ; Расширенная загрузка X
Таблица 6. Команды расширенной адресации
Мнемоника |
Команда |
ADC |
Сложить память и перенос с аккумулятором (Add Memory and Carry to Accumulator) |
ADD |
Сложить память с аккумулятором (Add Memory and Accumulator) |
AND |
Выполнить логическое AND памяти с аккумулятором (Logical AND of Memory and Accumulator) |
BIT |
Поразрядно сравнить память с аккумулятором (Bit Test Memory with Accumulator) |
CMP |
Сравнить аккумулятор с памятью (Compare Accumulator with Memory) |
CPX |
Сравнить младший байт индексного регистра с памятью (Compare X (Index Register Low) with Memory) |
EOR |
Выполнить исключающее OR памяти и аккумулятора (Exclusive OR Memory with Accumulator) |
JMP |
Выполнить переход (Jump) |
JSR |
Выполнить переход в подпрограмму (Jump to Subroutine) |
LDA |
Загрузить аккумулятор содержимым памяти (Load Accumulator from Memory) |
LDX |
Загрузить младший байт индексного регистра содержимым памяти (Load X (Index Register Low) from Memory) |
ORA |
Выполнить включающее OR содержимого аккумулятора и памяти (Inclusive OR Accumulator with Memory) |
SBC |
Вычесть память и перенос из аккумулятора (Subtract Memory and Carry from Accumulator) |
STA |
Сохранить аккумулятор в памяти (Store Accumulator in Memory) |
STX |
Сохранить младший байт индексного регистра в памяти (Store X (Index Register Low) in Memory) |
SUB |
Вычесть память из аккумулятора (Subtract Memory from Accumulator) |
|