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

 

Ниже приведена таблица, в которой дано подробное описание программы 2 на языке Ассемблера в машинных кодах, а также мнемокод, описание и комментарий к каждой команде.

 

Таблица 3.

Метки Адрес Данные Мнемокод Описание команды Комментарий к команде
М1 0800 0801 26 00 MVI H,01  (H)  (00) запись данных 00h в регистор Н  
  0802 0803 DB 01 IN 01  (A)  (01) Ввод в порт по адресу 01h входных данных  
  0804 47 MOV B,A  (B)  (A) сохранение аккумулятора в регистре В  
  0805 0806 1Е 52 MVI E,52  (E) 52hзапись данных 52h в регистр E  
  0807 A3 ANA Е  (A)  (A)  (Е) логическое умножение аккумулятора и данных в регистре Е  
  0808 93 SUB E  (A)  (A) - (Е) Вычитание из аккумулятора содержимого регистра Е  
  0809 4F MOV С,A  (C)  (A) сохранение аккумулятора в регистре C  
  080A 080B 3Е 00 MVI A,00  (A) 00hзапись данных 00h в аккумулятор  
  080C В9 CMP C If (А) = (С) then Сравнение содержимого регистраС с аккумулятором
  080D 080E 080F C2 15 08 JNZ M2 JMP if Z=0 Переход при выполнении условия Z=0
  0810 0811 26 01 MVI H,01  (H) 01hзапись данных 01h в регистор Н  
  0812 0813 0814 CA 45 08 JZ M5 JMP if Z=1 Переход при выполнении условия Z=1
M2 0815 78 MOV A,B  (A)  (B) загрузка данных с регистра В в аккумулятор  
  0816 0817 1Е 50 MVI E,50  (E) 00hзапись данных 50h в регистр E  
  0818 A3 ANA Е  (A)  (A)  (Е) логическое умножение аккумулятора и данных в регистре Е  
  0819 93 SUB E  (A)  (A) - (Е) Вычитание из аккумулятора содержимого регистра Е  
  081A 4F MOV С,A  (C)  (A) сохранение аккумулятора в регистре C  
  081B 081C 3Е 00 MVI A,00  (A) 00hзапись данных 00h в аккумулятор  
  081D В9 CMP C If (А) = (С) then Сравнение содержимого регистраС с аккумулятором
  081E 081F 0820 C2 26 08 JNZ M3 JMP if Z=0 Переход при выполнении условия Z=0
  0821 0822 26 01 MVI Н,01  (Н) 01hзапись данных 01h в регистор Н  
  0823 0824 0825 CA 45 08 JZ M5 JMP if Z=1 Переход при выполнении условия Z=1
M3 0826 78 MOV A,B  (A)  (B) загрузка данных с регистра В в аккумулятор  
  0827 0828 1Е 58 MVI E,58  (E) 58hзапись данных 58h в регистр E  
  0829 A3 ANA Е  (A)  (A)  (Е) логическое умножение аккумулятора и данных в регистре Е  
  082A 93 SUB E  (A)  (A) - (Е) Вычитание из аккумулятора содержимого регистра Е  
  082B 4F MOV С,A  (C)  (A) сохранение аккумулятора в регистре C  
  082C 082D 3Е 00 MVI A,00  (A) 00hзапись данных 00h в аккумулятор  
  082E В9 CMP C If (А) = (С) then Сравнение содержимого регистраС с аккумулятором
  082F 0830 0831 C2 37 08 JNZ M4 JMP if Z=0 Переход при выполнении условия Z=0
  0832 0833 26 01 MVI Н,01  (Н) 01hзапись данных 01h в регистор Н  
  0834 0835 0836 CA 45 08 JZ M5 JMP if Z=1 Переход при выполнении условия Z=1
M4 0837 78 MOV A,B  (A)  (B) загрузка данных с регистра В в аккумулятор  
  0838 0839 1Е 40 MVI E,40  (E) 40hзапись данных 40h в регистр E  
  083A A3 ANA Е  (A)  (A)  (Е) логическое умножение аккумулятора и данных в регистре Е  
  083B 93 SUB E  (A)  (A) - (Е) Вычитание из аккумулятора содержимого регистра Е  
  083C 4F MOV С,A  (C)  (A) сохранение аккумулятора в регистре C  
  083D 083E 3Е 00 MVI A,00  (A) 00hзапись данных 00h в аккумулятор  
  083F В9 CMP C If (А) = (С) then Сравнение содержимого регистраС с аккумулятором
  0840 0841 0842 C2 4E 08 JNZ M5 JMP if Z=0 Переход при выполнении условия Z=0
  0843 0844 26 01 MVI Н,01  (Н) 01hзапись данных 01h в регистор Н  
M5 0845 78 MOV A,B  (A)  (B) загрузка данных с регистра В в аккумулятор  
  0846 0847 1Е 13 MVI E,13  (E) 13hзапись данных 13h в регистр E  
  0848 A3 ANA Е  (A)  (A)  (Е) логическое умножение аккумулятора и данных в регистре Е  
  0849 93 SUB E  (A)  (A) - (Е) Вычитание из аккумулятора содержимого регистра Е  
  084A 4F MOV С,A  (C)  (A) сохранение аккумулятора в регистре C  
  084B 084C 3Е 00 MVI A,00  (A) 00hзапись данных 00h в аккумулятор  
  084D В9 CMP C If (А) = (С) then Сравнение содержимого регистраС с аккумулятором
  084E 084F 0850 C2 59 08 JNZ M6 JMP if Z=0 Переход при выполнении условия Z=0
  0851 0852 3E 02 MVI A,02  (A) 02hзапись данных 02h в аккумулятор  
  0853 В4 ORA H  (A)  (A)  (H) логическое сложение аккумулятора и данных в H  
  0854 0855 D3 80 OUT 80  (80)  (A) Вывод в порт по адресу 80h выходных данных  
  0856 0857 0858 C3 00 08 JMP M1 JMP Безусловный переход на метку М1
M6 0859 78 MOV A,B  (A)  (B) загрузка данных с регистра В в аккумулятор  
  085A 085B 1Е 23 MVI E,23  (E)  (23) запись данных 23h в регистр E  
  085C A3 ANA Е  (A)  (A)  (Е) логическое умножение аккумулятора и данных в регистре Е  
  085D 93 SUB E  (A)  (A) - (Е) Вычитание из аккумулятора содержимого регистра Е  
  085E 4F MOV С,A  (C)  (A) сохранение аккумулятора в регистре C  
  085F 0860 3Е 00 MVI A,00  (A) 00hзапись данных 00h в аккумулятор  
  0861 В9 CMP C If (А) = (С) then Сравнение содержимого регистраС с аккумулятором
  0862 0863 0864 C2 6D 08 JNZ M7 JMP if Z=0 Переход при выполнении условия Z=0
  0865 0866 3E 02 MVI A,02  (A) 02hзапись данных 02h в аккумулятор  
  0867 В4 ORA H  (A)  (A)  (H) логическое сложение аккумулятора и данных в H  
  0868 0869 D3 80 OUT 80  (80)  (A) Вывод в порт по адресу 80h выходных данных  
  086A 086B 086C C3 00 08 JMP M1 JMP if Z=1 Безусловный переход на начало программы
M7 086D 7C MOV A,H  (A)  (H) загрузка данных с регистра H в аккумулятор  
  086E 086F D3 80 OUT 80  (80)  (A) Вывод в порт по адресу 80h выходных данных  
  0870 0871 0872 C3 00 08 JMP M1 JMP Безусловный переход на начало программы

 



Блок-схема 3

 

 






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



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