Ниже приведена таблица, в которой дано подробное описание программы 1 на языке Ассемблера в машинных кодах, а также мнемокод, описание и комментарий к каждой команде.
Таблица 2.
Метки | Адрес | Данные | Мнемокод | Описание команды | Комментарий к команде |
М1 | 0800 0801 | DB 01 | IN 01 | (A) (01) Ввод в порт по адресу 01h входных данных | |
0802 | 47 | MOV B,A | (B) (A) сохранение аккумулятора в регистре В | ||
0803 | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
0804 | 57 | MOV D,A | (D) (A) сохранение аккумулятора в регистре D | ||
0805 | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
0806 | 2F | CMA | (A) () Инвертирование аккумулятора | ||
0807 | B2 | ORA D | (A) (A) (D) логическое сложение аккумулятора и данных в D | ||
0808 | 57 | MOV D,A | (D) (A) сохранение аккумулятора в регистре D | ||
0809 | 78 | MOV A,B | (A) (B) загрузка данных с регистра В в аккумулятор | ||
080A | 2F | CMA | (A) () Инвертирование аккумулятора | ||
080B | A2 | ANA D | (A) (A) (D) логическое умножение аккумулятора и данных в регистре D | ||
080C | 4F | MOV C,A | (C) (A) сохранение аккумулятора в регистре C | ||
080D | 78 | MOV A,B | (A) (B) загрузка данных с регистра В в аккумулятор | ||
080E | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
080F | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
0810 | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
0811 | B1 | ORA C | (A) (A) (C) логическое сложение аккумулятора и данных в C | ||
0812 | 4F | MOV C,A | (C) (A) сохранение аккумулятора в регистре C | ||
0813 | 78 | MOV A,B | (A) (B) загрузка данных с регистра В в аккумулятор | ||
0814 | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
0815 | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
0816 | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
0817 | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
0818 | A1 | ANA C | (A) (A) (C) логическое умножение аккумулятора и данных в регистре C | ||
0819 | 4F | MOV C,A | (C) (A) сохранение аккумулятора в регистре C | ||
081A | 07 | RLC | СДВИГ ВЛЕВО | сдвиг аккумулятора на один разряд влево | |
081B | 07 | RLC | СДВИГ ВЛЕВО | сдвиг аккумулятора на один разряд влево | |
081C | 07 | RLC | СДВИГ ВЛЕВО | сдвиг аккумулятора на один разряд влево | |
081D | 2F | CMA | (A) () инвертирование аккумулятора | ||
081E | B1 | ORA C | (A) (A) (C) логическое сложение аккумулятора и данных в C | ||
081F | 4F | MOV C,A | (C) (A) сохранение аккумулятора в регистре C | ||
0820 | 07 | RLC | СДВИГ ВЛЕВО | сдвиг аккумулятора на один разряд влево | |
0821 | 07 | RLC | СДВИГ ВЛЕВО | сдвиг аккумулятора на один разряд влево | |
0822 | A1 | ANA C | (A) (A) (C) логическое умножение аккумулятора и данных в регистре C | ||
0823 | 4F | MOV C,A | (C) (A) сохранение аккумулятора в регистре C | ||
0824 | 78 | MOV A,B | (A) (B) загрузка данных с регистра В в аккумулятор | ||
0825 | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
0826 | 2F | CMA | (A) () инвертирование аккумулятора | ||
0827 | 57 | MOV D,A | (D) (A) сохранение аккумулятора в регистре D | ||
0828 | 78 | MOV A,B | (A) (B) загрузка данных с регистра В в аккумулятор | ||
0829 | 07 | RLC | СДВИГ ВЛЕВО | сдвиг аккумулятора на один разряд влево | |
082A | 07 | RLC | СДВИГ ВЛЕВО | сдвиг аккумулятора на один разряд влево | |
082B | 07 | RLC | СДВИГ ВЛЕВО | сдвиг аккумулятора на один разряд влево | |
082C | A2 | ANA D | (A) (A) (D) логическое умножение аккумулятора и данных в регистре D | ||
082D | 57 | MOV D,A | (D) (A) сохранение аккумулятора в регистре D | ||
082E | 78 | MOV A,B | (A) (B) загрузка данных с регистра В в аккумулятор | ||
082F | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
0830 | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
0831 | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
0832 | 6F | MOV L,A | (L) (A) загрузка данных с аккумулятора в регистор L | ||
0833 | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
0834 | 67 | MOV H,A | (H) (A) загрузка данных с аккумулятора в регистор H | ||
0835 | 7D | MOV A,L | (A) (L) загрузка данных с регистра L в аккумулятор | ||
0836 | 2F | CMA | (A) () инвертирование аккумулятора | ||
0837 | A4 | ANA H | (A) (A) (H) логическое умножение аккумулятора и данных в регистре H | ||
0838 | B2 | ORA D | (A) (A) (D) логическое сложение аккумулятора и данных в D | ||
0839 | 57 | MOV D,A | (D) (A) загрузка данных с аккумулятора в регистор D | ||
083A | 78 | MOV A,B | (A) (B) загрузка данных с регистра В в аккумулятор | ||
083B | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
083C | 0F | RRC | СДВИГ ВПРАВО | сдвиг аккумулятора вправо на один разряд | |
083D | A2 | ANA D | (A) (A) (D) логическое умножение аккумулятора и данных в регистре D | ||
083E | 57 | MOV D,A | (D) (A) загрузка данных с аккумулятора в регистор D | ||
083F 0840 | 1E 01 | MVI E,01 | (E) (01) запись данных 01h в регистр E | ||
0841 | 7A | MOV A,D | (A) (D) загрузка данных с регистра D в аккумулятор | ||
0842 | A3 | ANA E | (A) (A) (E) логическое умножение аккумулятора и данных в регистре E | ||
0843 | 07 | RLC | СДВИГ ВЛЕВО | сдвиг аккумулятора на один разряд влево | |
0844 | 57 | MOV D,A | (D) (A) загрузка данных с аккумулятора в регистор D | ||
0845 | 79 | MOV A,C | (A) (C) загрузка данных с регистра C в аккумулятор | ||
0846 | A3 | ANA E | (A) (A) (E) логическое умножение аккумулятора и данных в регистре E | ||
0847 | B2 | ORA D | (A) (A) (D) логическое сложение аккумулятора и данных в D | ||
0848 0849 | D3 80 | OUT 80 | (80) (A) Вывод в порт по адресу 80h выходных данных | ||
084A 084B 084C | C3 00 08 | JMP M1 | (PC) (0800) безусловный переход на адрес 0800h |
|
|
|
|
Блок-схема 2