Содержимое ячеек после выполнения программы: |Адре|Содержимое| |с | | |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]
Страницы: 1, 2