Реферат: Микросхема ПЗУ в управляющем автомате с МПУ выбрана неверно
НЕТ
СЧЕТЧИК=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 | Останов программы |
Программа на языке BASIC
Программа была составлена на языке BASIC и отлажена на IBM-совместимом компьютере.
Текст программы
REM Программа по курсовой работе (каф 403).
REM Список переменных:
REM SCHET% - счетчик циклов.
REM D% - входной код.
REM B%, C% - выходные коды.
CLS
REM Задается размерность входного кода.
DIM D%(32)
REM Установка списка данных в начальное положение.
RESTORE
REM Запись входного кода. Цикл.
FOR I%=1 TO 32
REM Чтение I-го элемента входного кода.
READ D%(I%)
NEXT I%
REM Поиск первой комбинации 010. Цикл.
FOR SCHET%=2 TO 31