Косвенная регистровая адресация. 


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



ЗНАЕТЕ ЛИ ВЫ?

Косвенная регистровая адресация.



При этом способе адресации пара регистров HL указывает на адрес операнда в памяти. Примером являются такие команды, как MOV А,М (переслать содержимое ячейки памяти, адрес которой находится в паре HL, в аккумулятор); MOV M,D и т.п. При этом способе адресации могут также использоваться регистровые пары ВС и DE. B этом случае будут использоваться команды STAX YZ (сохранение содержимого аккумулятора в памяти, адрес которой находится в паре YZ) и LDAX YZ (загрузка в аккумулятор содержимым ячейки памяти, адрес которой находится в паре YZ). При использовании этих команд вместо YZ подставляется конкретная регистровая пара (если адрес в паре ВС, то записывается В; если DE, то записывается D).Ha пример LDAX B, STAX D.

Прямая адресация.

В случае прямой адресации 2-ой и 3-ий байт команды прямо указывает на адрес операнда в памяти (т.о. адрес данных следует за кодом операции). Этим адресом может быть адрес памяти (LDA 22FFH,STA 50DDH и т.п),а также номер порта ввода/вывода (IN E4H,OUT 7FH).

Непосредственная адресация.

В случае непосредственных команд операнд следует сразу же за кодом операции. Примером являются: MVI А,1ЗН; LXI H,80AAH; LXI D,7F00H и т.п.

Неявная адресация.

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

 

Задача № 1

Записать в регистр А однобайтовое число 47Н и проинвертировать его.

 

Программа оформляется в виде:

адреса код команды Примечание
0800Н МVI A,47Н Занесение байта данных в накопитель
0801Н      
0802Н 2F СМА Инвертируем содержимое накопителя
0803Н   HLT Конец программы

 

Перед вводом программы в память МП требуется перевести программу с языка ассемблер в машинные коды и назначить каждому коду, либо операнду (операндами называются данные используемые в командах программы) адрес ячейки памяти в ОЗУ МП-системы. Выбранные адреса должны соответствовать ОЗУ МП. В противном случае при загрузке программы в память МП можно потерять часть или все данные.

Для перевода программы с языка ассемблер в машинные коды требуется выполнить следующие действия:

1. для каждой команды, представленной в строке 3 таблицы 1, требуется подобрать машинный код, представляющий собой код операции, соответствующей выбранной команде (приложение 1);

2. определить операнды (данные, следующие за мнемокодом операции);

3. определить соответствие последовательных адресов памяти для каждой команды и операнда.

Каждая команда, используемая в МП КР580, имеет определенный формат. В соответствии с этим операции делятся на однобайтные, двухбайтные и трехбайтные. Однобайтные операции не содержат дополнительных операндов. Двухбайтные содержат один байт операнд, трехбайтные имеют двухбайтные операнды. Следует учесть, что при записи трехбайтной команды в ОЗУ МП-системы, сначала следует код, затем младший бай и только потом старший байт данных.

 

Для подготовки УМК к работе требуется выполнить следующие действия:

1. На рабочем столе выбрать иконку и открыть её.

 

 

 

 

2. Выбираем установочную область памяти

 

3. Включаем компилятор

Компиля́тор — транслятор, который осуществляет перевод всей исходной программы в эквивалентную ей результирующую программу на языке машинных команд (микропроцессора или виртуальной машины).

 

4. Осуществляем набор команд в компиляторе (всегда начинаем работу с org 0800, заканчиваем hlt). После ввода программы нажимаем на иконку Compile, если все верно, то высвечивается иконка Compile Ok.

 

5. Осуществить Старт с заявленного адреса (т.е. начало программы).

6. Просмотр выполнения программы (Регистры, адрес).

 

 

 

Задания к 1 лабораторной работе

Результат выполнения программ представить в виде таблице 5.1.

 

Число по адресу 0900Н Число по адресу 0901H Число по адресу 0902Н Содержимое А Состояние битов регистра F S= Z= AC= P= С=
         
         

 

1. Разработать программу которая вычитает однобайтовые числа которые расположены в регистрах В и А, результат помещает в регистр С. (Числа заносятся программно).

2. Поменять содержимое регистровых пар DЕ и НL местами. Числа в регистры заносим программно.

 

3. Разработать программу которая записывает в регистр С 15Н, в регистр В 23 Н и производит сложение, результат помещает в регистр В.

 

4. Сложить содержимое ячейки памяти, с адресом 0900Н и содержимое ячейки памяти, с адресом 0901Н. Результат поместить в регистр В.

 

5. Уменьшить содержимое регистровой пары DЕ на содержимое регистровой пары НL. Числа в регистровые пары заносим программно. результат поместить в регистровую пару DЕ.

 

6. Поменять регистровые пары НL и ВС местами. Числа в регистровые пары заносим программно.

 

7. Написать программу, увеличивающую содержимое ячейки памяти по адресу 0900Н на 5Н и размещающую результат в ячейку памяти по адресу 0901.

 

8. Написать программу сложения двух двухбайтовых чисел, одно из которых расположено в памяти, начиная с адреса 0900Н,другое с адреса 0902Н. Результат разместить в памяти с адреса 0904Н. Перед выполнением программы записать по исходным адресам двухбайтовые числа, указанные преподавателем.

 

9. Заменить в прог.4. команду сложения содержимого аккумулятора с регистром В (ADD В) командой сравнения СМР В. Ввести программу в память УМК. Записать в ячейку памяти по адресу 0900Н число большее, чем по адресу 0901Н. Запустить программу на выполнение. После выполнения проанализировать результат выполнения.

 

10. Записать по адресу 0900Н число меньшее, чем по адресу 0901Н. (п.4)

 

11. 10.Записать по адресам 0900Н и 0901Н два одинаковые числа. Запустить программу на выполнение. Исследовать результат выполнения (п.4).

 

12. Заменить в программе 4 команду ADD В на команды INR A,DCR A, ADD A, ANA A, ORA A, XRA А. Исследовать результат выполнения, содержимое аккумулятора и флагового регистра F. Результат представить в виде таблицы 5.2.

 

Таблица 5.2.

Команда Содержимое аккумулятора Содержимое аккумулятора после операции Содержание битов флагового регистра F
       
       

Вопросы для самопроверки

 

1. Из чего состоит память микропроцессора?

2. Нарисуйте структуру учебной микро-ЭВМ.

3. Что происходит при попытке записи данных в ПЗУ?

4. Шина (адреса, данных, управления) является однонаправленной.

5. Посредством 16 линий адресной шины можно получить доступ к (кол-во) ячейкам памяти и (кол-во) устройствам ввода-вывода.

6. Нарисуйте внутреннюю структуру микропроцессора и укажите основное назначение его компонентов.

7. Какие биты входят в состав регистра признаков микропроцессора?

8. Какие команды арифметических и логических операций выполняет микропроцессор КР580ВМ80А?

9. Какие методы адресации используются в микропроцессоре?

10. Как влияют арифметические и логические операции на биты флагового регистра?

 

Список литературы

 

1. Юров В.Б. Assembler [Текст]: учебник студентам вузов, изучающим архитектуру микропроцессоров Intel в рамках соответствующих дисциплин / - СПб.: М.: Харьков:Минск: Питер, 2001. - 624 с.

2. Скляров В.А. Программирование на языке Ассемблера [Текст]: учебное пособие / Скляров В.А. - М.: Высшая школа, 1999. - 151,[1]с.

3. Пузанкова Д.В. Микропроцессорные системы [Текст]: учебное пособие для студентов вузов, обучающихся по направлению подготовки бакалавров и магистров "Информатика и вычислительная техника"/-СПб.: Политехника, 2002. - 936 с.: ил. - (Учебное пособие для вузов).

4. Пузанкова Д.В. Сквозные образовательные программы высшего и среднего профессионального технического образования по направлениям: "Радиотехника", "Автоматизация и управление" [Текст]: методический материал / - М.: Новый учебник, 2004. - 73 с.

 

Приложение 1



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 1364; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.183.187 (0.01 с.)