Способы адресации в МП КР580ИК80А
Для составления программы важно знать особенности процедур, позволяющих преобразовывать информацию об адресах команд и данных в физические адреса участков памяти машины.
Для МП КР580ИК80А существует следующие четыре возможных способа адресации: непосредственная, прямая, регистровая и косвенная.
Непосредственная адресация – наиболее экономический способ хранения и посыла информации, т.к. необходимые данные содержатся непосредственно во втором и третьем байтах трехбайтовой команды или во втором байте двухбайтовой команды. В случае трехбайтовой команды младшие разряды 16-битовые числа содержатся во втором байте команды, а старшие – в третьем. (рис. )
<B1> <B2> <B3>
Менее экономичной, но также простой является прямая адресации. В этом случае во втором и третьем байтах команды содержится полный 16-разрядный адрес памяти. Младший байтом адреса является <B2>, страшим - <B3>. Таким способом м. адресоваться к любой ячейки адресного пространства памяти
<B1> <B2> <B3>
При регистровой адресации код команды содержит указание на регистр или пару регистров, в которых содержатся данные. Используемые в регистровой адресации команды являются однобайтовыми! Возможность указания пары регистров в однобайтовой команде регистрируется за счет того, что адреса регистров являются трехразрядным двоичным кодами
|
|
|
|
|
Рис.
Косвенная адресация отличается от регистровой тем, что в регистровой паре, определенной кодом команды (адресом), содержатся не данные, а полный 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 соответствующий разряд регистра состояние.
Пример команды: ЗАГРУЗКА АККУМУЛЯТОРА КОСВЕННАЯ
|
По этой команде данные переписываются из области памяти в аккумулятор. Содержимое регистровой пары ВС указывает адрес области памяти-источника данных. Для того, чтобы рассматриваемая команда м.б. использована, в регистровую пару ВС необходимо предварительно занести нужный адрес. Это 1-байтовый команда, выполняющаяся за два микроцикла. Если результат выполнения команды равен 0 или содержит 1 в старшем разряде, то устанавливается в 1 соответствующий разряд регистра состояния.
Пример команды: ЗАГРУЗКА РЕГИСТРОВОЙ ПАРЫ НЕПОСРЕДСТВЕННАЯ
LRP B, Данные M->C (M+1)->B
|
С помощью этой команды в 16 разрядную пару регистров ВС заносятся данные, содержащиеся во втором и третьем байтах команды. Это 3-байтовая команда, для выполнения которой необходимы три микроцикла. (По сравнению с последовательностью команд LDA B LDA C использование данной команды позволяет сэкономить три микроцикла). Значение разрядов регистра состояния при выполнении команды LRP B не изменяется.
Пример команды: ПЕРЕСЫЛКА ИЗ РЕГИСТРА В РЕГИСТР
MOV r1,r2 r2->r1
|
По этой команде в регистр r1 загружается копия данных, содержащихся в регистре r2. Так при выполнении команды MOV B, A копия данных, находящаяся в аккумуляторе (регистре А), записывается в регистр В. Это 1-байтовая команда, реализуемая за два микроцикла. Если результат выполнение команды содержит 1 в старшем разряде или равен 0, то устанавливается в 1 соответствующий разряд регистра состояния.
Пример команды: ЗАПИСЬ АККУМУЛЯТОРА В ПАМЯТЬ КОСВЕННАЯ
STI A A->M
|
При использовании команды данные переписываются из аккумулятора в память. Содержимое регистровой пары ВС указывает адрес области памяти, в которую осуществляется запись данных. Для того, чтобы м.б. воспользоваться данной командой, в пару регистров ВС необходимо предварительно загрузить нужный адрес. Это 1-байтовая команда, выполнение которой занимает два микроцикла, значение разрядов регистра состояния при выполнении данной команды не изменяется.
Вопрос 23
Дата добавления: 2018-04-15; просмотров: 1205; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!