Микропроцессорные системы - Александров Е.К.
ISBN 5-7325-0516-4
Скачать (прямая ссылка):
равенства. Увеличить на 1 адрес в регистре Н:Х.
Индексная адресация по указателю стека со смещением в 1 байт. Команды с
данным типом адресации имеют длину 3 байта. Первый и второй байты
содержат код операции, а третий байт - беззнаковую константу смещения. В
определении адреса операнда участвует указатель стека SP, который
содержит код базового адреса. Центральный процессор вычисляет адрес
операнда путем сложения содержимого указателя стека SP с кодом смещения.
После сложения адрес операнда представляется в двухбайтовом формате.
Примеры.
ADD opr.SP ; Запись команды ADD с адресацией по указателю стека со
смещением в один
; байт в общем виде.
ADD $80,SP ; Сложить содержимое аккумулятора АСС с содержимым ячейки
памяти,
; адрес которой равен (SP)+128.
LDA $1 ,SP ; Загрузить в аккумулятор АСС содержимое ячейки памяти, адрес
которой
; равен (SP)+1.
Индексная адресация по указателю стека со смещением в 2 байта. Команды
сданным типом адресации имеют длину 4 байта. Первый и второй байты
содержат код операции, а третий и четвертый байты - двухбайтовую
беззнаковую константу. В определении адреса операнда участвует указатель
стека SP. Центральный процессор вычисляет адрес операнда путем сложения
двухбайтового кода смещения с содержимым указателя стека SP. После
сложения адрес операнда представляется в двухбайтовом формате.
Мнемонические обозначения команд с индексной адресацией со смещениями 1 и
2 байта совпадают. Однако не следует беспокоиться об этом при написании
программы. В процессе трансляции программа Ассемблер самостоятельно
подставит код необходимой операции, проанализировав численное значение
адреса орг. Примеры.
ADD opr.SP ; Запись команды ADD с адресацией по указателю стека со
смещением
; в один байт в общем виде.
ADD $0100,SP ; Сложить содержимое аккумулятора АСС с содержимым
ячейки памяти,
; адрес которой равен (SP)+512.
LDA $01 FF,SP ; Загрузить в аккумулятор АСС содержимое ячейки памяти,
адрес которой
; равен (SP)+1023.
Относительная адресация. Относительная адресация применяется только в
командах условных переходов, которые используются для организации
ветвления программ. Команды условных переходов имеют двухбайтовый формат.
Первый байт содержит код операции, а второй - смещение адреса следующей
команды относительно адреса текущей команды в целочисленном формате со
знаком. Диапазон возможных кодов смещения: от -128 до +127.
369
в-РАЗРЯДНЫЕ МИКРОКОНТРОЛЛЕРЫ
Если условие, заданное типом используемой команды условного перехода,
выполняется, то адрес следующей команды центральный процессор вычисляет
путем сложения текущего адреса с кодом смещения. Если условие не
выполняется, то МК переходит к выполнению следующей команды.
При написании программ нет необходимости вычислять абсолютные коды
смещения для команд условного перехода. Достаточно указать лишь метку,
численное значение кода смещения вычислит программа Ассемблер.
Примеры.
JZ 1аЫе1 ; Перейти по метке 1аЫе1, если результат операции
равен 0.
4.3.3. СИСТЕМА КОМАНД МК СЕМЕЙСТВА НС08
Система команд CPU08 включает 90 инструкций.
Длина кода команды в байтах определяется типом инструкции и способом
адресации. Команды CPU08 могут иметь однобайтовый, двухбайтовый,
трехбайтовый и четырехбайтовый формат. Однобайтовыми командами в
соответствии с теорией являются команды с неявной адресацией (INH) и с
индексной адресацией без смещения (IX: LDA, х). В двухбайтовом формате
представлены команды с непосредственной (IMM: LDA #орг), прямой (DIR: LDA
орг) и индексной с однобайтовым смещением (1X1: LDA орг,х) адресацией.
Трехбайтовый формат имеют команды с прямой расширенной адресацией (EXT:
LDA орг), индексной со смещением в два байта адресацией (IX2: LDA орг,х)
и адресацией по указателю стека со смещением в один байт (SP1: LDA
opr,SP). Четырехбайтовыми командами являются только команды с адресацией
по указателю стека со смещением в два байта (SP2: LDA opr.SP).
Множество команд делится на 6 традиционных групп, каждая из которых
рассмотрена ниже. Распределение команд по группам приведено в табл. 4.22.
Таблица 4.22
Распределение команд Ассемблера CPU08 по типовым группам
Группа команд Число инструкций в фуппе
Команды загрузки и пересылки 13
Арифметические команды 14
Логические команды и команды сдвигов 15
Команды битового процессора 6
Команды управления ходом вычислительного процесса 40
Команды перехода к режимам пониженного потребления 2
Команды загрузки и пересылки данных. Команды этой группы осуществляют
перемещение данных между ячейками памяти и регистрами центрального
процессора (табл. 4.23).
370
СЕМЕЙСТВО МК НС08 ФИРМЫ "MOTOROLA"
Таблица 4.23
Команды загрузки и пересылки данных
Мнемокод Операция Выполняемое действие Способ адресации Влияние на
признаки
V н I N z с
LDA UDA #орг LDAopr LDA opr LDA opr.x LDA opr.x LDA ,x LDA opr.SP LDA
opr.SP Загрузить в ACC константу или содержимое ячейки памяти А <=
(М) IMM DIR EXT IX SP1 SP2 0 I I