МПТ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 | Останов программы |