Рефераты. Программирование в двоичных кодах p>Содержимое ячеек до выполнения программы:
|Адре|Содержимое|
|с | |
|200 |100 |

Содержимое ячеек после выполнения программы:
|Адре|Содержимое|
|с | |
|200 |110 |

Программа №4.1


Сложение двоично-десятичных чисел.

|Адреса |Команды |Мнемоника команд |Комментарии |
|000 |041 |LXI H | |
|001 |200 |B2 | |
|002 |000 |B3 | |
|003 |076 |MVI A | |
|004 |010 |B2 | |
|005 |206 |ADD M |(A)+(M)((A) |
|006 |047 |DAA |Десятичная |
| | | |коррекция |
|007 |167 |MOV M,A | |
|010 |166 |HLT | |

Содержимое ячеек до выполнения программы:
|Адре|Содержимое|
|с | |
|200 |051 (29) |

Содержимое ячеек после выполнения программы:
|Адре|Содержимое|
|с | |
|200 |067 (37) |

Программа №4.2

Вычитание двоично-десятичных чисел

|Адрес|Команд|Мнемоника |
|а |ы |команд |
|000 |041 |LXI H |
|001 |200 |B2 |
|002 |000 |B3 |
|003 |006 |MVI B |
|004 | |B2 |
|005 |076 |MVI A |
|006 |231 |99 |
|007 |220 |SUB B |
|010 |074 |INR A |
|011 |206 |ADD |
|012 |047 |DAA |
|013 |167 |MOV M,A |
|014 |166 |HLT |

Содержимое ячеек до выполнения программы:
|Адре|Содержимое|
|с | |
|200 |045 (25) |


Содержимое ячеек после выполнения программы:
|Адре|Содержимое|
|с | |
|200 |007 (07) |

Программа №5

Логическая операция, сдвиг числа и запоминание слова состояния
|Адрес|Команды |Мнемоника команд |Комментарии |
|а | | | |
|000 |006 |MVI B | |
|001 |200 |B2 | |
|002 |076 |MVI A | |
|003 |001 |B2 | |
|004 |250 |XRA |Сложение по mod2 содержимого А и|
| | | |В. |
|005 |027 |RAL |Циклический сдвиг влево через |
| | | |перенос. |
|006 |061 |LXI SP | |
|007 |202 |B2 | |
|010 |000 |B3 | |
|011 |365 |PUSH PSW |Запоминание в стеке Слова |
| | | |Состояния Программы. |
|012 |166 |HLT | |


Анализ значений Слова Состояния Программы


|Мнемоника |Значение PSW |
|команды | |
| |(A) |РгF |
|MVI B 200 |xxxxxxx|xx0x0x1|
| |x |x |
|MVI A 001 |0000000|xx0x0x1|
| |1 |x |
|XRA B |1000000|1000011|
| |1 |0 |
|RAL |0000001|1000011|
| |0 |1 |
|LXI SP 202 000 |0000001|1000011|
| |0 |1 |
|PUSH PSW |0000001|1000011|
| |0 |1 |
|HLT |0000001|1000011|
| |0 |1 |

Содержимое ячеек после выполнения программы:
|Адре|Содержимое|
|с | |
|200 |207 |
|201 |002 |

Программа №6

Обнуление области памяти. Программа пересылает нулевое содержимое какого либо регистра в ячейку памяти.

|Адрес|Команды |Мнемоника команд |Комментарий |
|а | | | |
|000 |227 |SUB A |Обнуление А |
|001 |041 |LXI H | |
|002 |011 |B2 | |
|003 |000 |B3 | |
|004 |167 |MOV M,A |Обнуление ячейки памяти по |
| | | |адресу HL |
|005 |043 |INX H |Адрес следующей ячейки |
|006 |303 |JMP |Безусловный переход по адресу |
|007 |004 |B2 |мл.байт |
|010 |000 |B3 |ст.байт |

Содержимое ячеек до выполнения программы:
|Адре|Содержимое|
|с | |
|011 |Xxx |
|... |Xxx |
|040 |Xxx |

Содержимое ячеек после выполнения программы:
|Адре|Содержимое|
|с | |
|011 |000 |
|... |000 |
|040 |000 |

Программа №7

Режим задания команд с клавиатуры
|Адреса |Команды |Мнемоника команд |
|100 200 |166 |HLT |

Задание с клавиатуры

|Команд|Мнемоника |
|ы |команд |
|303 |JMP |
|200 |B2 |
|100 |B3 |

Программа №8

Условные переходы. Программа позволяет изучить действие условных переходов.
По адресу H=000,L=200 запишем число 002(соответствует нулевому значению всех флагов в регистре признаков), а по адресу H=000,L=004 – число 302(код команды условного перехода по ненулевому результату JNZ).

|Адрес|Команды |Мнемоника команд |Комментарии |
|а | | | |
|000 |061 |LXI SP | |
|001 |200 |B2 | |
|002 |000 |B3 | |
|003 |361 |POP PSW |Извлечение из стека ССП |
|004 |* |* |(JNZ,JZ,JNC,JC,JPO,JPE,JP,JM) |
|005 |000 |B2 | |
|006 |000 |B3 | |
|007 |166 |HLT | |
|200 |** |- | |
|201 |000 |- | |


Варианты выполнения программы

|Призна|Данные по адресу |Данные по адресу |Переход к адресу |
|к |004 |200 |000 |
| |302 (JNZ) |002 (z=0) |Есть |
|ноль |302 (JNZ) |102 (z=1) |Нет |
| |312 (JZ) |102 (z=1) |Есть |
| |322 (JNC) |002 (c=0) |Есть |
|перено|322 (JNC) |003 (c=1) |Нет |
|с | | | |
| |332 (JC) |003 (c=1) |Есть |
| |342 (JPO) |002 (p=0) |Есть |
|Четнос|342 (JPO) |006 (p=1) |Нет |
|ть | | | |
| |352 (JPE) |006 (p=1) |Есть |
| |362 (JP) |002 (s=0) |Есть |
|Знак |362 (JP) |202 (s=1) |Нет |
| |372 (JM) |202 (s=1) |Есть |

Программа №12

Выбор максимального элемента массива.

|Адрес |Команда |Мнемоника команды |Комментарий |
|000 |041 |LXI H | |
|001 |100 |B1 | |
|002 |000 |B2 | |
|003 |016 |MVI C |Загрузка переменной цикла |
|004 |005 |B2 | |
|005 |176 |MOV A,M |Загрузка в А первого элемента |
|006 |043 |INX H |Переход к следующему элементу |
|007 |276 |CMP M |Если А>М С=0 |
| | | |А|
| | | |флаг C=0 и наоборот |
|013 |322 |JNC |Если C=1, то элементы расположены по |
| | | |возрастанию и выполнять перемену их местами|
| | | |не нужно(ком 016-021) |
|014 |022 |B2 |След. Ячейка |
|015 |000 |B3 |Делитель из памяти в В |
|016 |160 |MOV M,B |Перезапись первого элемента по адресу |
| | | |второго |
|017 |053 |DCX H |Сформировали адрес первого элемента |
|020 |167 |MOV M,A |Сохранили под адресом первого элемента |
| | | |второй |
|021 |043 |INX H |Адрес первого из сравниваемых в следующем |
| | | |цикле |
|022 |025 |DCR D |Уменьшение переменной внутреннего цикла |
|023 |302 |JNZ |Если переменная не равна нулю переход к |
| | | |следующей итерации |
|024 |007 |B2 | |
|025 |000 |B3 | |
|026 |015 |DCR C |Уменьшение переменной внешнего цикла |
|027 |302 |JNZ |Если переменная внешнего цикла не равна |
| | | |нулю то переходим к следующей итерации |
|030 |002 |B2 | |
|031 |000 |B3 | |
|032 |166 |HLT |Конец программы. |

Программа №2.

Вывод с задержкой слов РЕПА И ГЕРБ на панель индикатора.

|Адрес |Команда |Мнемоника команд |Комментарии |
|000 |076 |MVI A |Предварительная инициализация ППИ |
| | | |блока статической индикации |
|001 |200 |B2 | |
|002 |323 |OUT port | |
|003 |003 |B2 | |
|004 |323 |OUT port | |
|005 |007 |B2 | |
|006 |004 |INR B |Инициализация стека |
|007 |002 |STAX B | |
|010 |001 |LXI B | |
|011 |220 |B2 | |
|012 |230 |B3 | |
|013 |007 |RLC | |
|014 |006 |MVI B | |
|015 |003 |INX B | |
|016 |041 |LXI H |Загрузка начального адреса в указатель|
| | | |памяти |
|017 |200 |B2 | |
|020 |000 |B3 | |
|021 |176 |MOV A,M |Вывод на блок статической индикации |
| | | |слова РЕПА |
|022 |323 |OUT port | |
|023 |000 |B2 | |
|024 |043 |INX H | |
|022 |176 |MOV A,M | |
|023 |323 |OUT port | |
|024 |001 |B2 | |
|025 |043 |INX H | |
|026 |176 |MOV A,M | |
|027 |323 |OUT port | |
|030 |002 |B2 | |
|031 |043 |INX H | |
|032 |176 |MOV A,M | |
|033 |323 |OUT port | |
|034 |004 |B2 | |
|035 |315 |CALL addr |Вызов подпрограммы |
|036 |153 |B2 | |
|037 |000 |B3 | |
|040 |043 |INX H |Вывод на блок статической индикации |
| | | |слова ГЕРБ |
|041 |176 |MOV A,M | |
|042 |323 |OUT port | |
|043 |000 |B2 | |
|044 |043 |INX H | |
|045 |176 |MOV A,M | |
|046 |323 |OUT port | |
|047 |001 |B2 | |
|050 |043 |INX H | |
|051 |176 |MOV A,M | |
|052 |323 |OUT port | |
|053 |002 |B2 | |
|054 |043 |INX H | |
|055 |176 |MOV A,M | |
|056 |323 |OUT port | |
|057 |004 |B2 | |
|060 |315 |CALL addr |Вызов подпрограммы |
|061 |153 |B2 | |
|062 |000 |B3 | |
|063 |303 |JMP addr |Безусловный переход к команде по |
| | | |адресу, указанному в B2,B3 |
|064 |006 |B2 | |
|065 |000 |B3 | |

Подпрограмма, организующая задержку.

|Адрес|Команды|Мнемоника |Комментарии |
| | |команды | |
|153 |001 |LXI B |Запись исходных данных в регистры B и C |
|154 |377 |B2 |B2((C) |
|155 |377 |B3 |B3((B) |
|156 |005 |DCR B |Уменьшение переменной внутреннего цикла |
|157 |302 |JNZ addr |Если переменная цикла не равна нулю переход|
| | | |к следующей итерации |
|160 |156 |B2 | |
|161 |000 |B3 | |
|162 |015 |DCR C |Уменьшение переменной внешнего цикла |
|163 |302 |JNZ addr |Если переменная цикла не равна нулю переход|
| | | |к следующей итерации |
|164 |156 |B2 | |
|165 |000 |B3 | |
|166 |311 |RET |Безусловный возврат из подпрограммы |

Коды букв для вывода на семи сегментный индикатор

|А |167 |
|Б |175 |
|Г |061 |
|Е |171 |
|Р |163 |
|П |067 |

Выводы.

В ходе выполнения работы были получены навыки программирования МП- систем, система команд процессора комплекта серии К580 и принципы проектирования и отладки микроконтроллеров на основе МП. Программирование в машинных кодах позволяет прозрачно представить структуру МП и программного обеспечения.

-----------------------

Блок индикации

ЗУ

Команд

(микрокоманд)

Блок

Центрального

Процессора

(ЦП)

Блок синхронизации

ТГ

Схема однократного пуска

Пульт управления

Клавишные регистры входной информации

Автомат
Однократ

пуск

ЗУ
КЛАВ

зап

[pic]

[pic]

[pic]


Страницы: 1, 2



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.