Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > HC08 > Архитектура

реклама

 




Мероприятия:




Непосредственная адресация

В командах непосредственной адресации операнд располагается в байтах, следующих непосредственно за операционным кодом. Байт или байты, следующие за операционным кодом, чаще являются операндами, а не значением адреса. В этом случае действительный адрес команды определяемый знаком # прямо указывает на байт, следующий за операционным кодом. Непосредственное значение ограничивается одним или двумя байтами, в зависимости от размера регистра, связанного с командой. В таблице 4 перечислены команды использующие непосредственную адресацию.

Команды непосредственной адресации, связанные с использованием индексного регистра (H:X), являются трехбайтовыми: один байт - операционный код, два байта содержат непосредственные данные. Нижеследующий пример содержит две непосредственные команды: AIX (сложить непосредственное значение с H:X) и CPHX (сравнить H:X с непосредственным значением). H:X вначале очищается и затем последовательно инкрементируется на 1 до значения $FFFF. По достижении состояния, определяемого CPHX, программа переходит к START и процесс неограниченно повторяется.

Машинный код    Метка    Операция     Операнд     Комментарий

5F              START     CLRX                     ; X = 0
8C                        CLRH                     ; H = 0
AF01            TAG       AIX          #1          ; (H:X) = (H:X) + 1
65FFFF                    CPHX         #$FFFF      ; Сравнение (H:X) с $FFFF
26F9                      BNE          TAG         ; Цикл выполняется до совпадения значений
20F5                      BRA          START       ; Начать сначала

Таблица 4. Команды непосредственной адресации

Мнемоника Команда
ADC Сложить непосредственное значение, с переносом, с аккумулятором (Add with Carry Immediate Value to Accumulator)
ADD Сложить непосредственное значение с аккумулятором (Add Immediate Value to Accumulator)
AIS Сложить непосредственное значение, со знаком, с указателем стека (Add Immediate Value (Signed) to Stack Pointer)
AIX Сложить непосредственное значение, со знаком, с индексным регистром (Add Immediate Value (Signed) to Index Register (H:X))
AND Выполнить логическое AND непосредственного значения с аккумулятором (Logical AND Immediate Value with Accumulator)
BIT Выполнить поразрядное сравнение непосредственного значения с аккумулятором (Bit Test Immediate Value with Accumulator)
CBEQA Сравнить аккумулятор с непосредственным значением и перейти если равно (Compare A with Immediate and Branch if Equal
CBEQX Сравнить младший байт индексного регистра с непосредственным значением и перейти если равно (Compare X (Index Register Low) with Immediate and Branch if Equal)
CMP Сравнить аккумулятор с непосредственным значением (Compare Accumulator with Immediate Value)
CPHX Сравнить индексный регистр с непосредственным значением (Compare Index Register (H:X) with Immediate Value)
CPX Сравнить младший байт индексного регистра с непосредственным значением (Compare X (Index Register Low) with Immediate Value)
EOR Выполнить исключающее OR непосредственного значения с аккумулятором (Exclusive OR Immediate Value with Accumulator)
LDA Загрузить аккумулятор непосредственным значением (Load Accumulator from Immediate Value)
LDHX Загрузить индексный регистр непосредственным значением (Load Index Register (H:X) with Immediate Value)
LDX Загрузить младший байт индексного регистра непосредственным значением (Load X (Index Register Low) from Immediate Value)
ORA Выполнить включающее OR непосредственного значения (Inclusive OR Immediate Value)
SBC Вычесть непосредственное значение с переносом (Subtract with Carry Immediate Value)
SUB Вычесть непосредственное значение (Subtract Immediate Value)


<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники