МПТ1 (775024), страница 4
Текст из файла (страница 4)
Характеристики ППЗУ КР556РТ4
-
Емкость - 256х4 Бит
-
Время задержки - 70 нс
-
Потребляемая мощность - 690 мВт
-
Тип выхода - ТТЛ-ОК
-
Исходное состояние - 0
Составление программы
Программа на ассемблере
НАЧАЛО
СЧЕТЧИК=02Н
АККУМУЛЯТОР=
=1-ый справа байт кода
Маскирование последних
3 бит АККУМУЛЯТОРА
АККУМУЛЯТОР= 010В
НЕТ
Сдвиг кода на разряд вправо
СЧЕТЧИК=СЧЕТЧИК+1
СЧЕТЧИК=32
Запись значения счетчика в память
СЧЕТЧИК=02Н
АККУМУЛЯТОР=
=1-ый слева байт кода
Маскирование первых
3 бит АККУМУЛЯТОРА
ДА
АККУМУЛЯТОР= 01000000В
2 3
1
1 2 3
Сдвиг кода на разряд влево
СЧЕТЧИК=СЧЕТЧИК-1
НЕТ
СЧЕТЧИК=1
Запись значения счетчика в память
КОНЕЦ
Для нормального функционирования программы необходимо предварительно занести входной код, предварительно поделенный на байты в следующие ячейки памяти: 0800Н - 0803Н (в 0800Н - крайний левый байт кода и т.д.) и 0804Н - 0807Н (в 0804Н - крайний левый байт кода и т.д.)
| Адрес | Код | Метка | Команда | Комментарий |
| 0809 | 16 |
| MVI D,O2H | Счетчик = 2 |
| 080A | 02 |
|
|
|
| 080B | 3A | M1 | LDA 0803H | Загрузка первого справа байта кода в аккумулятор |
| 080C | 03 |
|
|
|
| 080D | 08 |
|
|
|
| 080F | E6 |
| ANI 07H | Маскирование 3 последних бит аккумулятора |
| 0810 | 07 |
|
|
|
| 0811 | FE |
| CPI 02H | Сравнение аккумулятора с 010В |
| 0812 | 02 |
|
|
|
| 0813 | CA |
| JZ M2 |
|
| 0814 | 37 |
|
|
|
| 0815 | 08 |
|
|
|
| 0816 | A7 |
| ANA A | Обнуление флага переноса |
| 0817 | 3A |
| LDA 0800H |
|
| 0818 | 00 |
|
|
|
| 0819 | 08 |
|
|
|
| 081A | 1F |
| RAR |
|
| 081B | 32 |
| STA 0800H |
|
| 081C | 00 |
|
|
|
| 081D | 08 |
|
|
|
| 081E | 3A |
| LDA 0801H |
|
| 0820 | 01 |
|
|
|
| 0821 | 08 |
|
|
|
| 0822 | 1F |
| RAR |
|
| 0823 | 32 |
| STA 0801H |
|
| 0824 | 01 |
|
|
|
| 0825 | 08 |
|
|
|
| 0826 | 3A |
| LDA 0802H |
|
| 0827 | 02 |
|
|
|
| 0829 | 08 |
|
| Последовательный сдвиг |
| 082A | 1F |
| RAR | байтов кода вправо |
| 082B | 32 |
| STA 0802H |
|
| 082C | 02 |
|
|
|
| 082D | 08 |
|
|
|
| 082E | 3A |
| LDA 0803H |
|
| 082F | 03 |
|
|
|
| 0830 | 08 |
|
|
|
| 0831 | 1F |
| RAR |
|
| 0832 | 32 |
| STA 0803H |
|
| 0833 | 03 |
|
|
|
| 0834 | 08 |
|
|
|
| 0835 | 14 |
| INR D | Прибавление к счетчику единицы |
| 0836 | 7A |
| MOV A, D |
|
| 0837 | FE |
| CPI 20H | Сравнение значения счетчика с 32D |
| 0838 | 20 |
|
|
|
| 083A | 7A | M2 | MOV A, D |
|
| 083B | 32 |
| STA 0808H | Запись первого результата в память |
| 083C | 08 |
|
|
|
| 083D | 08 |
|
|
|
| 083E | 16 |
| MVI D,1FH | Счетчик = 31 |
| 083F | 1F |
|
|
|
| 0840 | 3A | M3 | LDA 0803H | Загрузка первого слева байта кода в аккумулятор |
| 0841 | 03 |
|
|
|
| 0842 | 08 |
|
|
|
| 0843 | E6 |
| ANI E0H | Маскирование 3 первых разрядов кода |
| 0844 | E0 |
|
|
|
| 0845 | FE |
| CPI 40H | Сравнение аккумулятора с 0100 0000В |
| 0846 | 40 |
|
|
|
| 0847 | CA |
| JZ M4 |
|
| 0848 | 6B |
|
|
|
| 0849 | 08 |
|
|
|
| 084A | A7 |
| ANA A | Обнуление флага переноса |
| 084B | 3A |
| LDA 0804H |
|
| 084C | 04 |
|
|
|
| 084D | 08 |
|
|
|
| 084E | 1F |
| RAL |
|
| 084F | 32 |
| STA 0804H |
|
| 0850 | 04 |
|
|
|
| 0851 | 08 |
|
|
|
| 0852 | 3A |
| LDA 0805H |
|
| 0853 | 05 |
|
|
|
| 0854 | 08 |
|
|
|
| 0855 | 17 |
| RAL |
|
| 0856 | 32 |
| STA 0805H |
|
| 0857 | 05 |
|
|
|
| 0858 | 08 |
|
|
|
| 0859 | 3A |
| LDA 0806H |
|
| 085A | 02 |
|
|
|
| 085B | 08 |
|
| Последовательный сдвиг |
| 085C | 17 |
| RAL | байтов кода влево |
| 085D | 32 |
| STA 0806H |
|
| 085E | 06 |
|
|
|
| 085F | 08 |
|
|
|
| 0860 | 3A |
| LDA 0807H |
|
| 0861 | 07 |
|
|
|
| 0862 | 08 |
|
|
|
| 0863 | 17 |
| RAL |
|
| 0864 | 32 |
| STA 0807H |
|
| 0865 | 07 |
|
|
|
| 0866 | 08 |
|
|
|
| 0867 | 15 |
| DCR D | Вычитание из счетчика единицы |
| 0868 | 7A |
| MOV A, D |
|
| 0869 | FE |
| CPI 02H | Сравнение значения счетчика с 1D |
| 086A | 02 |
|
|
|
| 086B | 7A | M4 | MOV A, D |
|
| 086C | 32 |
| STA 0809H | Запись второго результата в память |
| 086D | 08 |
|
|
|
| 086E | 09 |
|
|
|
| 086F | 76 |
| HLT | Останов программы |














