Общий вид ADC M : (A) + (M) + (c) ®(A)
Если в ячейку 200 записать значение 377 и продолжить выполнение программы в автоматическом режиме, то получим следующие результаты:
Адрес Содержимое
1-ый запуск
000 200 007 ; перенос C = 1
2-ой запуск
000 200 020 ; М = М + 010 + С(=1)
Для реализации вычитания надо заменить команду MOV M,A на SUB D где D – второй операнд. Для работы с двоично-десятичными числами использую команду DAA(команда десятичной коррекции). Для сложения двоично-десятичных чисел после команды DAA должна следовать команда DAA.
· Вычитание двоичных чисел.(A = A- D, A->M)
Адреса |
Команды |
Мнемоника |
Комментарии |
000 |
026 |
MVI D |
Непосредственная загрузка D |
001 |
010 |
B2 |
Байт данных вычитаемого |
002 |
076 |
MVI A |
Непосредственная загрузка A |
003 |
200 |
B2 |
Байт данных уменьшаемого |
004 |
206 |
SUB D |
Вычитание из содержимого A содержимого D |
005 |
041 |
LXI H |
Загрузка начального адреса памяти в указатель памяти |
006 |
200 |
B2 |
мл. байт адреса |
007 |
000 |
B3 |
ст. байт адреса |
010 |
167 |
MOV M, A |
Запоминание разности в ячейке памяти |
011 |
166 |
HLT |
Останов |
10000000-00001000=01111000
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.