Способы адресации в МП КР580ИК80А



Для составления программы важно знать особенности процедур, позволяющих преобразовывать информацию об адресах команд и данных в физические адреса участков памяти машины.

    Для МП КР580ИК80А существует следующие четыре возможных способа адресации: непосредственная, прямая, регистровая и косвенная.

    Непосредственная адресация – наиболее экономический способ хранения и посыла информации, т.к. необходимые данные содержатся непосредственно во втором и третьем байтах трехбайтовой команды или во втором байте двухбайтовой команды. В случае трехбайтовой команды младшие разряды 16-битовые числа содержатся во втором байте команды, а старшие – в третьем. (рис. )

 

                                              <B1>                <B2>             <B3>

Менее экономичной, но также простой является прямая адресации. В этом случае во втором и третьем байтах команды содержится полный 16-разрядный адрес памяти. Младший байтом адреса является <B2>, страшим - <B3>. Таким способом м. адресоваться к любой ячейки адресного пространства памяти

 

                                              <B1>                <B2>             <B3>

При регистровой адресации код команды содержит указание на регистр или пару регистров, в которых содержатся данные. Используемые в регистровой адресации команды являются однобайтовыми! Возможность указания пары регистров в однобайтовой команде регистрируется за счет того, что адреса регистров являются трехразрядным двоичным кодами

Операционный код
    Данные Данные
Счетчик команд
                                         <B1>                                               Регистры

 

                                            Рис.                          

Косвенная адресация отличается от регистровой тем, что в регистровой паре, определенной кодом команды (адресом), содержатся не данные, а полный 16-разрядный адрес ячейки памяти, в которой имеются эти данные. Старший байт адреса записывается в первом регистре пары, а младший – во втором. Обычно указателем адреса при косвенной адресации является пара регистров Н, т.е. регистры Н, L , но иногда В и D

Правила программирования на ассемблере.

При изучении команды ассемблера необходимо учитывать следующие ее характеристики:

1. Название

2. Используемые способы адресации.

3. Мнемоническое обозначение.

4. Размещение команды в памяти.

5. Представление действий, выполняемых командой, с помощью логических символов.

6. Назначение действий, выполняемых командой.

7. Длину команды.

8. Воздействие результата выполнения команды на регистр состояния микропроцессора.

 

 

 Вопрос 22

Ассемблер. Команды пересылки данных.

Команды пересылки данных также называются командами перемещения данных. Они служат для пересылки данных в различные устройства хранения информации, которыми располагает микро-ЭВМ, а также для пересылки данных их этих устройств. К числу областей хранения информации относятся ячейки памяти и регистры. В зависимости от того, какие устройства микропроцессора участвуют в пересылке данных, различают команды : ЗАГРУЗКА, ПЕРЕСЫЛКА И ЗАПИСЬ В ПАМЯТЬ.

            Команды пересылки данных – это по существу команды копирования. Например, если одна из этих команд перемещает данные из аккумулятора в область памяти, то после выполнения команды и в области памяти и в аккумуляторе находятся одни и те же данные. Очень редко в ходе выполнения команды пересылка данных разрушаются данные, находящееся в исходном месте.

            Код операции в команде пересылки данных задает источник данных и способ адресации.

            Восьмиразрядный МП может иметь 1-, 2- и 3- байтовые команды пересылки данных.

            Пример трехбайтовой команды:

            STA A, Адрес          А → М

            По команде «Запись аккумулятора в память, ПРЯМАЯ» данные, находящиеся в аккумуляторе записываются в память. На адрес памяти указывает 2-й и 3-й байты команды

 

МБ                    

 

СБ

 

 

        Например, командой STA A, 001F содержимое аккумулятора переписывается в область памяти с адресом 001F. После выполнения команды в аккумуляторе и в области 001F содержится одни и те же данные. Выполнение команды занимают 5 микроциклов, при этом значение регистра состояния не изменяется.

        Пример команды : ЗАГРУЗКА РЕГИСТРА НЕПОСТРЕДСТВЕННАЯ

LDA 2, Данные. Данные → 2

 

 

По этой команды в регистр 2 загружается данные, находящиеся во втором байте команды. Например, при выполнении команды LDA A данные загружаются в аккумулятор. С помощью команды LDA В производится загрузка данных в регистр В. Команда имеет размер 2 байта и выполняется за три микроцикла. Если при ее выполнении результат оказывается равным 0 или 1 в старшем разряде, то устанавливается в 1 соответствующий разряд регистра состояния. При этом разряд отрицательного результата в регистре состояния нашего МП устанавливается в 1, если появляется 1 в старшем разряде результата.

Пример команды: ЗАГРУЗКА РЕГИСТРА ПРЯМАЯ

LDD r, Адрес  М→2

 

МБ                    

 

СБ

 

    При выполнении этой команды данные переписываются из адресуемой области памяти в регистр 2. Второй и третий байты команды указывают адрес области памяти, данные которой копируются.

Например, по команде LDDC, OF1C данные, находящиеся в области памяти OF1C, перетягиваются в регистр С. Это 3-байтовая команда, выполнение которой занимает 4 микроцикла. Если результат операции равен 0 или содержит 1 в старшем разряде, то устанавливается в 1 соответствующий разряд регистра состояние.

 

Пример команды: ЗАГРУЗКА АККУМУЛЯТОРА КОСВЕННАЯ

LDI A
LDI A                           M->A

        

 

По этой команде данные переписываются из области памяти в аккумулятор. Содержимое регистровой пары ВС указывает адрес области памяти-источника данных. Для того, чтобы рассматриваемая команда м.б. использована, в регистровую пару ВС необходимо предварительно занести нужный адрес. Это 1-байтовый команда, выполняющаяся за два микроцикла. Если результат выполнения команды равен 0 или содержит 1 в старшем разряде, то устанавливается в 1 соответствующий разряд регистра состояния.

 

Пример команды: ЗАГРУЗКА РЕГИСТРОВОЙ ПАРЫ НЕПОСРЕДСТВЕННАЯ

LRP B, Данные       M->C (M+1)->B

LRP B СБ Данных   МБ Данных
 

 

 

С помощью этой команды в 16 разрядную пару регистров ВС заносятся данные, содержащиеся во втором и третьем байтах команды. Это 3-байтовая команда, для выполнения которой необходимы три микроцикла. (По сравнению с последовательностью команд LDA B LDA C использование данной команды позволяет сэкономить три микроцикла). Значение разрядов регистра состояния при выполнении команды LRP B не изменяется.

 

Пример команды: ПЕРЕСЫЛКА ИЗ РЕГИСТРА В РЕГИСТР

 

MOV r1,r2           r2->r1

mov r1,r2

 

 


По этой команде в регистр r1 загружается копия данных, содержащихся в регистре r2. Так при выполнении команды MOV B, A копия данных, находящаяся в аккумуляторе (регистре А), записывается в регистр В. Это 1-байтовая команда, реализуемая за два микроцикла. Если результат выполнение команды содержит 1 в старшем разряде или равен 0, то устанавливается в 1 соответствующий разряд регистра состояния.

 

Пример команды: ЗАПИСЬ АККУМУЛЯТОРА В ПАМЯТЬ КОСВЕННАЯ

 

STI A                       A->M

STI A

 


При использовании команды данные переписываются из аккумулятора в память. Содержимое регистровой пары ВС указывает адрес области памяти, в которую осуществляется запись данных. Для того, чтобы м.б. воспользоваться данной командой, в пару регистров ВС необходимо предварительно загрузить нужный адрес. Это 1-байтовая команда, выполнение которой занимает два микроцикла, значение разрядов регистра состояния при выполнении данной команды не изменяется.

 

 

Вопрос 23


Дата добавления: 2018-04-15; просмотров: 1010; Мы поможем в написании вашей работы!






Мы поможем в написании ваших работ!