| Адрес | Команда | Мнемоника | Комментарии | 
| L=000 | 041 | LXI H | ; Загрузка начального адреса в указатель памяти | 
| 001 | 200 | В2 | ; мл. байт адреса | 
| 002 | 000 | В3 | ; ст. байт адреса | 
| 003 | 076 | MVI A | ; Непосредственная загрузка A одним из слагаемых. | 
| 004 | 010 | В2 | ; Байт данных слагаемого | 
| 005 | 206 | ADD M | ; Сложение содержимого A c содержимым ячейки памяти | 
| 06 | 167 | MOV M,A | ; Запоминание значения суммы в ячейке памяти | 
| 007 | 166 | HLT | ; Останов | 
До первого выполнения программы в ячейку памяти по адресу 000200 было записано значение 030. При первом выполнение программы в память по адресу 000200 будет записано значение 040, что является результатом суммирования исходного значения аккумулятора и исходного значения ячейки памяти.
В результате каждого следующего выполнения содержимое ячейки памяти будет увеличиваться на 010.
Программа 3.1
Программа реализует вычитание двух чисел, одно из которых расположено в регистре блока РОН.
| Адрес | Команда | Мнемоника | Комментарии | 
| 000 | 041 | LXI H | ;Загрузка начального адреса памяти | 
| 001 | 200 | B2 | ;мл. байт адреса | 
| 002 | 000 | B3 | ;ст. байт адреса | 
| 003 | 006 | MVI B | ;Загрузка регистра B | 
| 004 | 001 | B2 | ;Байт | 
| 005 | 076 | MVI A | ;Загрузка аккумулятора | 
| 006 | 140 | B2 | ;Байт | 
| 007 | 220 | SUB B | ;Вычитание значения регистра B из А | 
| 010 | 167 | MOV M, A | ;запись результата | 
| 011 | 166 | HLT | ;Останов | 
По адресу 000200 предварительно записано число 010.
Результат выполнения программы: по адресу 000200 записана разность чисел 140 и 010 – 130.
Программа 3.2
Программа реализует сложение двоично-десятичных чисел.
| Адрес | Команда | Мнемоника | Комментарий | 
| 000 | 041 | LXI H | Загрузка начального адреса в указатель памяти | 
| 001 | 200 | B2 | младший байт адреса | 
| 002 | 000 | B3 | старший байт адреса | 
| 003 | 066 | MVI M | Загрузка слагаемого по адресу, заданному в HL | 
| 004 | X | B2 | |
| 005 | 076 | MVI A | Непосредственная загрузка операнда A одним из слагаемым | 
| 006 | Y | B2 | |
| 007 | 206 | ADD M | Сложение содержимого A с содержимым ячейки памяти | 
| 010 | 047 | DAA | Десятичная коррекция | 
| 011 | 167 | MOV M,A | Загрузка результата в регистр М | 
| 012 | 166 | HLT | Останов | 
1. Слагаемые: X=026 и Y=045. 0268=1610=000101102, 0458=2510=001001012
В данном случае понадобилась десятичная коррекция, так как при сложении в младшем полубайте результата получилась цифра большая 9. Коррекция осуществляется путём прибавления к этому полубайту 6. Результат 010000012= 1018=4110 , что соответствует результату, полученному при выполнении программы.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.