Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Способы адресации операндов




Команды процессора выполняют действия с операндами. Сначала они отыскивают исходные операнды, называемые операндами-источниками. Затем – выполняют операции с исходными операндами. И, наконец, отправляют полученный результат, называемый операнд-приемник, в определенную ячейку памяти, регистр процессора или порт интерфейса внешнего устройства. У любого операнда есть свой адрес хранения. Процессор имеет различные способы указания адресов операндов для отыскания операндов при чтении и для их размещения при записи. Всего микропроцессор 8080 имеет 5 способов адресации операндов, которые представлены в табл. 1.3.

Признаки результатов операций

При выполнении арифметических и логических операций с однобайтными двоичными операндами процессор имеет возможность не только получить байт результата в своем аккумуляторе, но и указать на некоторые признаки результата операции. Это реализовано через установку битов регистра признаков процессора. Его формат показан в табл. 1.4, а значения отдельных битов признаков – в табл. 1.5.

Биты регистра признаков устанавливаются командами арифметических, логических и сдвиговых операций. Они могут быть использованы другими командами в качестве объекта анализа или анализируемого условия. Анализировать состояния битов признаков могут команды условных переходов, условных вызовов подпрограмм или условных возвратов из подпрограмм. Кроме того, бит CY может принимать участие в арифметических, логических и сдвиговых операциях вместе с другими операндами.

Представление программы

Исходный текст программы разрабатывается на основе её алгоритма. Команды исходного текста пишутся сначала в форме мнемокодов. Например, простейшая программа 2.3, извлекающая число из ячейки памяти с адресом 0B00h, инвертирующую его и записывающая результат в память по адресу 0B01h.

; Программа 2.3. (в мнемокодах)

; Инвертирование однобайтного числа

;Входной параметр: M(0B00) – исходное число

;Выходной параметр: M(0B01) – результат инвертирования

.org 0800h; Область программы

LDA 0B00h; прочитать число из памяти с адресом 0B00 в; аккумулятор процессора (A)

CMA; инвертировать число в A

STA 0B01h; записать число из A в память по адресу 0B01

RST 1; вернуться в монитор

;в микро-ЭВМ УМК-80 для возврата в монитор следует пользоваться;командой RST 7.

.org 0B00h;Область данных

.db 0E5h;исходный байт

.db 00;результат

.end

Затем, для записи программы в оперативную память, необходимо перевести мнемокоды команд в машинные коды, то есть выполнить трансляцию программы. Так как команды в программе могут быть одно-, двух- или трёхбайтные, то они должны занимать соответственно одну, две или три ячейки памяти.

Программа 2.3 (размещение по адресам памяти)

Инвертирование однобайтного числа

Входной параметр: M(0B00) – исходное число

Выходной параметр: M(0B01) – результат инвертирования

Адрес Число Комментарий

0800 3A;код команды LDA

0801 00;младший байт адреса команды LDA

0802 0B;старший байт адреса команды LDA

0803 2F;код команды CMA

0804 32;код команды STA

0805 01;младший байт адреса команды STA

0806 0B;старший байт адреса команды STA

0807 CF;код команды RST 1*

* в микро-ЭВМ УМК-80 для возврата в монитор следует пользоваться командой RST 7, имеющей код FF.

Запись многобайтных команд удобно производить в более компактной и удобной для анализа форме – одной строкой. В начале строки указывается адрес первого байта такой команды и при этом понимается, что, в зависимости от длины, байты команды в памяти будут занимать от одной до трёх последовательно расположенных ячеек.

; Программа 2.3 (в мнемокодах и кодах)

; Инвертирование однобайтного числа

;Входной параметр: M(0B00) – исходное число

;Выходной параметр: M(0B01) – результат инвертирования

.org 0800h; Область программы

0800 3A 00 0B LDA 0B00h;AßM(0B00)

0803 2F CMA; инвертировать число в A

0804 32 01 0B STA 0B01h;AàM(0B01)

0807 CF RST 1;возврат в Монитор

;в микро-ЭВМ УМК-80 для возврата в монитор следует пользоваться;командой RST 7.

.org 0B00h;Область данных

.db 0E5h;исходный байт

.db 00;результат

.end

В программе 2.3 для определения операнда в памяти используется прямой метод адресации. В следующей программе 2.4 выполняются те же действия над исходным операндом, но для его определения в памяти применён уже косвенный метод адресации.

; Программа 2.4.

; Инвертирование однобайтного числа

;Входной параметр: M(0B00) – исходное число

;Выходной параметр: M(0B01) – результат инвертирования

.org 0800h; Область программы

LXI H,0B00h; HLß0B00

MOV A,M; AßM(HL)

CMA; инвертировать число в A

INX H; HLßHL+1

MOV M,A; AàM(HL)

RST 1; вернуться в монитор

;в микро-ЭВМ УМК-80 для возврата в монитор следует пользоваться;командой RST 7.

.org 0B00h;Область данных

.db 0E5h;исходный байт

.db 00;результат

.end

Порядок выполнения работы





Поделиться с друзьями:


Дата добавления: 2015-10-27; Мы поможем в написании ваших работ!; просмотров: 507 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Большинство людей упускают появившуюся возможность, потому что она бывает одета в комбинезон и с виду напоминает работу © Томас Эдисон
==> читать все изречения...

2565 - | 2225 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.