русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ВИДЫ ВЫПОЛНЯЕМЫХ ОПЕРАЦИЙ


Дата добавления: 2015-08-06; просмотров: 764; Нарушение авторских прав


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

· Операции пересылки. Производится пересылка данных из одного регистра в другой.

Пример: СßB - содержимое регистра В пересылается в регистр С. Мнемонически это записывается MOV C,B

В случае использования пар регистров HL ячейка оперативной памяти рассматривается как отдельный регистр общего назначения.

Пример: Dß[(HL)] º DßM – пересылка в регистр D содержимого пары регистров HL (M – ячейка оперативной памяти, адресом которой служит содержимое пары регистров HL)

· Непосредственная загрузка регистра.

Еß5D16 MVI E,5D

· Непосредственная загрузка пары регистров

DEß5D4F LXI D, 5D4F

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

· Логическое сложение

+1011 АßAÚD ORA A,D

0111 AßAÚ<B2> ORI A,<B2>

 

Арифметическое сложение

+1011 AßA+D ADD A,D

0111 AßA+<B2> ADI A,<B2>

· Сложение по модулю два

 

 
 

 


 

 

X1 X2 Y

 

AßA"D XRA A,D

AßA"<B2> XRI A,<B2>



 

· Логическое умножение

Aß A Ù B ANA A,B

Aß А Ù<B2> ANI A, <B2>

AßА+D+TC +1011

0111

TC

1

3. Операции циклического сдвига

Циклические сдвиги возможны исключительно в аккумуляторе, при этом кодовая комбинация сдвигается либо влево, либо вправо

 

a) Сдвиг вправо без учета переноса

 

 

 


Мнемонически такая операция обозначается RRC.

Содержимое каждого разряда аккумулятора передается в соседний младший разряд (DißDi+1), содержимое младшего разряда передается в старший разряд (D7ßD0) и одновременно в триггер переноса (ТСßD0).

 

b) Сдвиг вправо с учетом переноса.

 

 
 

 


Мнемонически такая операция обозначается RAR.

Отличие от сдвига без переноса в том, что триггер переноса передает свое содержимое в старший разряд аккумулятора (D7ßТС) и принимает выданное из аккумулятора содержимое младшего разряда (ТСßD0).

 

c) Сдвиг влево без учета переноса.

 
 

 


Мнемонически такая операция обозначается RLC.

Содержимое каждого разряда аккумулятора передается в соседний старший разряд (Di+1ßDi), содержимое старшего разряда переносится в младший разряд (D0ßD7) и одновременно в триггер переноса (ТСßD7).

 

d) Сдвиг влево с учетом переноса.

 

 
 

 


Мнемонически такая операция обозначается RАL.

Отличие от сдвига без переноса состоит в том, что триггер переноса ТС вводится в замкнутый контур, в котором осуществляется сдвиг; триггер переноса передает свое содержимое в младший разряд аккумулятора (D0ßТС) и принимает выдвигаемое из аккумулятора содержимое старшего разряда (ТСßD7).

 

4. Положительное и отрицательное приращение регистра или пары регистров.

 

Увеличение (уменьшение) содержимого регистра необходимо для организации циклических операций и для обращения к ячейкам оперативной памяти (модификация адреса).

 

ВßВ+1 – положительное приращение регистра. Мнемонически это будет INP B.

СßС-1 – уменьшение содержимого регистра С. Мнемонически это будет DCP C.

 

Возможно положительное или отрицательное приращение содержимого пары регистров:

HLßHL+1 - INX H.

BCßBC+1 - INX B.

DEßDE-1 - DCX D.

 

5. Операции условных и безусловных переходов.

 

Условные переходы позволяют организовать ветвящиеся программы. Условные переходы выполняются по значению признаков, хранящихся в регистре признаков (Всего их 5 – TZ, TS, TC, TP, TV). Каждый из этих признаков может принимать два значения – 0 и 1, – следовательно, всего можно организовать 10 условных переходов. Кроме того, имеется возможность перейти в любую точку программы (Мi) с помощью операции безусловного перехода (команда JMP Мi). Таким образом, имеется 11 команд условных и безусловных переходов, причем команды эти – трехбайтные.

 

Примеры команд условных переходов:

По признаку TZ: JNZ Mi – если TZ=0;

JZ Mi – если TZ=1;

По признаку TС: JNС Mi – если TС=0;

JС Mi – если TС=1;

По признаку TS: JNS Mi – если TS=0;

JS Mi – если TS=1;

 

6. Команды ввода/вывода.

 

Ввод (вывод) сигналов в (из) микропроцессора осуществляется исключительно через аккумулятор с помощью двухбайтовых команд.

1-ый байт – код операции, 2-ой байт – номер устройства ввода/вывода (УВВ). Т.к. восьмиразрядная кодовая комбинация может содержать 256 состояний, то имеется возможность опрашивать 256 устройств ввода и вывода.

 

Пример команд ввода/вывода:

Ввод в аккумулятор сигнала с устройства ввода №5:

АßУВВ 5 - IN 5.

Вывод сигнала из микропроцессора через устройство вывода №2:

УВ 2 ß А - OUT 2.

 

 

7. Прочие операции.

 

В микропроцессоре можно производить еще множество операций, например:

Res – сброс;

HLT – остановка – вызывает прекращение выполнения программы и переход в состояние останова;

Инверсия аккумулятора и другие.

 

ПРИМЕРЫ ПРОГРАММИРОВАНИЯ МИКРОПРОЦЕССОРА

 

Пример1: Программирование последовательных участков алгоритма.

Условие задачи: Имеется три числа, хранящиеся в ОЗУ в соседних ячейках. Адрес первого числа 7F5D. Все числа кодированы прямым кодом (положительные). Необходимо первые два числа сложить, а третье вычесть из полученной суммы. Результат вывести через устройство вывода №1.

 
 

 

 


Пример 2: Программирование ветвящихся участков алгоритма.

Условие задачи: Имеется 2 массива, каждый из двух чисел. Адрес первого числа первого массива – 7F5D, адрес первого числа второго массива – 6F4E. Необходимо сложить элементы первого массива и в зависимости от результата переноса ТС произвести следующие операции:

ü Если ТС=0, то элементы второго массива сложить между собой и результат вывести на устройство вывода №1, а на устройство вывода №2 вывести значение FFHEX;

ü Если ТС=1, то из первого элемента второго массива вычесть второй, результат, как и в первом случае, вывести на устройство вывода №1, а на устройство вывода №5 вывести значение 00HEX;

 

Программа.

К1. LXI H, 7F5D

К2. MOV A,M

К3. INX H

К4. ADD M

К5. JC M1

К6. LXI H, 6F4E

К7. MOV A,M

К8. INX H

К9. ADD M

К10. MOV C,A

К11. MVI A,FF

К12. OUT 2

К13. MOV A,C

К14. M2: OUT 1

STOP

К15. M1: LXI H, 6F4E

К16. MOV A,M

К17. INX H

К18. SUB A,M

К19. MOV C,A

К20. MVI A,00

К21. OUT 3

К22. MOV A, C JMP M2

 

 

Алгоритм программы.

 
 

 


 



<== предыдущая лекция | следующая лекция ==>
ВИДЫ АДРЕСАЦИИ | ЦИКЛИЧЕСКИЕ ПРОГРАММЫ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.