Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_tem_dlya_samostiynogo_opratsyuvannya.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.08 Mб
Скачать

Самостійна робота № 19

Тема : Безпосереднє адресування

Безпосередня адресація припускає, що операнд (вхідний) знаходиться в пам'яті безпосередньо за кодом команди. Операнд звичайно являє собою константу, яку треба кудись переслати, до чого додати і т.д. Наприклад, команда може полягати в тому, щоб додати число 6 до вмісту якогось внутрішнього регістра процесора. Це число 6 буде розташовуватися в пам'яті, усередині програми в адресі, що слідує за кодом даної команди додавання.

У командах безпосередньої адресації операнд розташовується в байтах, що слідують безпосередньо за операційним кодом. Байт або байти, наступні за операційним кодом, частіше є операндами, а не значенням адреси. У цьому випадку дійсний адресу команди визначається знаком # прямо вказує на байт, наступний за операційним кодом. Безпосереднє значення обмежується одним або двома байтами, в залежності від розміру регістра, пов'язаного з командою. У таблиці 1 перераховані команди які використовують безпосередню адресацію.

Команди безпосередньої адресації, пов'язані з використанням індексного регістра (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

; Почати спочатку

Таблиця 1. Команди безпосередньої адресації

Мнемоніка

Команда

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)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]