Адреса Команды Мнемоника команд Комментарии
000 061 LXI SP Установка указателя
стека.
001 202 В2 мл.байт адреса.
002 000 В3 ст.байт адреса.
003 001 LXI B Запись исходных данных
в регистры В и С.
004 001 В2
005 010 В3
006 305 PUSH B Запоминание содержимого
регистров В и С в стеке.
007 166 HLT Останов.
Содержимое ячеек после выполнения программы:
Адрес Содержимое
200 001
201 010
Программа №3
Извлечение данных из стека, их изменение и занесение обратно в стек.
Запишем в стек (H=000, L=200 и H=000, L=201 ) числа 001 и 200 .
Адрес Команды Мнемоника команд Комментарии
000 061 LXI SP
001 200 В2
002 000 В3
003 301 POP B Извлечение данных
из стека и загрузка их
в регистровую пару В и С
004 004 INR B Увеличение на единицу
регистра В
005 015 DCR C Уменьшение на единицу
содержимого регистра С
006 305 PUSH B Запоминание в стеке
007 166 HLT
Содержимое ячеек до выполнения программы:
Адрес | Содержимое |
200 | 001 |
201 | 200 |
Содержимое ячеек после выполнения программы:
Адрес | Содержимое |
200 | 000 |
201 | 201 |
Программа №4
Сложение содержимого регистра с содержимым ячейки памяти
Адреса | Команды | Мнемоника команд | Комментарии |
000 | 041 | LXI H | |
001 | 200 | B2 | |
002 | 000 | B3 | |
003 | 076 | MVI A | Непосредственная загрузка А одним одним из слагаемых |
004 | 010 | B2 | |
005 | 206 | ADD M | Сложение содержимого А с содержимым ячейки памяти |
006 | 167 | MOV M,A | |
007 | 166 | HLT |
Содержимое ячеек до выполнения программы:
Адрес | Содержимое |
200 | 100 |
Содержимое ячеек после выполнения программы:
Адрес | Содержимое |
200 | 110 |
Программа №4.1
Сложение двоично-десятичных чисел.
Адреса | Команды | Мнемоника команд | Комментарии |
000 | 041 | LXI H | |
001 | 200 | B2 | |
002 | 000 | B3 | |
003 | 076 | MVI A | |
004 | 010 | B2 | |
005 | 206 | ADD M | (A)+(M)-(A) |
006 | 047 | DAA | Десятичная коррекция |
007 | 167 | MOV M,A | |
010 | 166 | HLT |
Содержимое ячеек до выполнения программы:
Адрес | Содержимое |
200 | 051 (29) |
Содержимое ячеек после выполнения программы:
Адрес | Содержимое |
200 | 067 (37) |
Программа №4.2
Вычитание двоично-десятичных чисел
Адреса | Команды | Мнемоника команд |
000 | 041 | LXI H |
001 | 200 | B2 |
002 | 000 | B3 |
003 | 006 | MVI B |
004 | B2 | |
005 | 076 | MVI A |
006 | 231 | 99 |
007 | 220 | SUB B |
010 | 074 | INR A |
011 | 206 | ADD |
012 | 047 | DAA |
013 | 167 | MOV M,A |
014 | 166 | HLT |
Содержимое ячеек до выполнения программы:
Адрес | Содержимое |
200 | 045 (25) |
Содержимое ячеек после выполнения программы:
Адрес | Содержимое |
200 | 007 (07) |
Программа №5
Логическая операция, сдвиг числа и запоминание слова состояния
Адреса | Команды | Мнемоника команд | Комментарии |
000 | 006 | MVI B | |
001 | 200 | B2 | |
002 | 076 | MVI A | |
003 | 001 | B2 | |
004 | 250 | XRA | Сложение по mod2 содержимого А и В. |
005 | 027 | RAL | Циклический сдвиг влево через перенос. |
006 | 061 | LXI SP | |
007 | 202 | B2 | |
010 | 000 | B3 | |
011 | 365 | PUSH PSW | Запоминание в стеке Слова Состояния Программы. |
012 | 166 | HLT |
Анализ значений Слова Состояния Программы
Мнемоника команды | Значение PSW | |
(A) | РгF | |
MVI B 200 | xxxxxxxx | xx0x0x1x |
MVI A 001 | 00000001 | xx0x0x1x |
XRA B | 10000001 | 10000110 |
RAL | 00000010 | 10000111 |
LXI SP 202 000 | 00000010 | 10000111 |
PUSH PSW | 00000010 | 10000111 |
HLT | 00000010 | 10000111 |
Содержимое ячеек после выполнения программы:
Адрес | Содержимое |
200 | 207 |
201 | 002 |
Программа №6
Обнуление области памяти. Программа пересылает нулевое содержимое какого либо регистра в ячейку памяти.
Адреса | Команды | Мнемоника команд | Комментарий |
000 | 227 | SUB A | Обнуление А |
001 | 041 | LXI H | |
002 | 011 | B2 | |
003 | 000 | B3 | |
004 | 167 | MOV M,A | Обнуление ячейки памяти по адресу HL |
005 | 043 | INX H | Адрес следующей ячейки |
006 | 303 | JMP | Безусловный переход по адресу |
007 | 004 | B2 | мл.байт |
010 | 000 | B3 | ст.байт |
Содержимое ячеек до выполнения программы:
Адрес | Содержимое |
011 | Xxx |
... | Xxx |
040 | Xxx |
Содержимое ячеек после выполнения программы:
Адрес | Содержимое |
011 | 000 |
... | 000 |
040 | 000 |
Программа №7
Режим задания команд с клавиатуры
Адреса | Команды | Мнемоника команд |
100 200 | 166 | HLT |
Задание с клавиатуры
Команды | Мнемоника команд |
303 | JMP |
200 | B2 |
100 | B3 |
Программа №8
Условные переходы. Программа позволяет изучить действие условных переходов. По адресу H=000,L=200 запишем число 002(соответствует нулевому значению всех флагов в регистре признаков), а по адресу H=000,L=004 – число 302(код команды условного перехода по ненулевому результату JNZ).
Адреса | Команды | Мнемоника команд | Комментарии |
000 | 061 | LXI SP | |
001 | 200 | B2 | |
002 | 000 | B3 | |
003 | 361 | POP PSW | Извлечение из стека ССП |
004 | * | * | (JNZ,JZ,JNC,JC,JPO,JPE,JP,JM) |
005 | 000 | B2 | |
006 | 000 | B3 | |
007 | 166 | HLT | |
200 | ** | - | |
201 | 000 | - |
Варианты выполнения программы
Признак | Данные по адресу 004 | Данные по адресу 200 | Переход к адресу 000 |
302 (JNZ) | 002 (z=0) | Есть | |
ноль | 302 (JNZ) | 102 (z=1) | Нет |
312 (JZ) | 102 (z=1) | Есть | |
322 (JNC) | 002 (c=0) | Есть | |
перенос | 322 (JNC) | 003 (c=1) | Нет |
332 (JC) | 003 (c=1) | Есть | |
342 (JPO) | 002 (p=0) | Есть | |
Четность | 342 (JPO) | 006 (p=1) | Нет |
352 (JPE) | 006 (p=1) | Есть | |
362 (JP) | 002 (s=0) | Есть | |
Знак | 362 (JP) | 202 (s=1) | Нет |
372 (JM) | 202 (s=1) | Есть |
Программа №12
Выбор максимального элемента массива.
Адрес | Команда | Мнемоника команды | Комментарий |
000 | 041 | LXI H | |
001 | 100 | B1 | |
002 | 000 | B2 | |
003 | 016 | MVI C | Загрузка переменной цикла |
004 | 005 | B2 | |
005 | 176 | MOV A,M | Загрузка в А первого элемента |
006 | 043 | INX H | Переход к следующему элементу |
007 | 276 | CMP M | Если А>М С=0 А<М С=1 |
010 | 332 | JC | Если А<М меняем местами |
011 | 014 | B2 | |
012 | 000 | B3 | |
013 | 176 | MOV A,M | Перенос в А нового максимума |
014 | 015 | DCR C | Уменьшение переменной цикла |
015 | 302 | JNZ | Если переменная цикла не равна 0 то все сначала |
016 | 006 | B2 | |
017 | 000 | B3 | |
020 | 062 | STA | Сохранение результата в памяти |
021 | 150 | B2 | |
022 | 000 | B3 | |
023 | 166 | HLT | Конец |
2.Выполнение индивидуальных заданий