Программа 1 на языке Ассемблера

 

Ниже приведена таблица, в которой дано подробное описание программы 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

 

 

 

 

 




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: