Р2.27. Первый способ обмена – это программный обмен, который осуществляется под управлением программы, для чего в соответствующие места программы вводятся специальные команды ввода и вывода. Типовая команда ввода или вывода содержит код операции, адрес (код) ВУ (например, порта) и сопровождается управляющими сигналами. В некоторых случаях по команде ввода или вывода сначала осуществляется проверка готовности ВУ на обмен информации и лишь затем осуществляется обмен.
Второй способ обмена – обмен с прерыванием программы, инициируемый ВУ, которое посылает в МП сигнал «Запрос прерывания». После выполнения текущей команды МП прекращает выполнение основной программы, выдает в ВУ сигнал «Подтверждение прерывания» и после получения от ВУ сигнала «Рестарт», содержащего информацию о том, какая подпрограмма обработки прерывания должна выполняться, приступает к ее выполнению. После окончания подпрограммы происходит автоматический возврат к основной программе.
Третий способ обмена – это непосредственный обмен ВУ с ОЗУ без использования аккумулятора и регистров МП (режим прямого доступа к памяти или режим захвата). При поступлении сигнала «Запрос захвата» МП заканчивает выполнение очередной команды и выдает сигнал «Разрешение захвата», по которому шины МПС переводятся в состояние высокого выходного сопротивления, в результате чего возникает возможность непосредственного подключения ВУ к ОЗУ.
Р6.28.1
а) MVI A 00111110
A0 10100000
STA 00110010
2C 00101100
B0 10110000
б) LDA 00111010
OF 00001111
02 00000010
MOV D, A 01010111
в) MOV A, E
STA
56
14
г) LXI H
02
01
MOV B, M
LDA
F2
F1
MOV M, A
MOV A, B
STA
F2
F1
д) MOV C, B
LDAX D
MOV B, A
MOV A, C
STAX D
e) MOV H,B
MOV L,C
SHLD
00
FF
з) XRA А
MOV В, А
MOV С,А
MOV D,A
MOV E,A
Р6.29. а) По команде MVI A,2D происходит загрузка константы 2D в регистр А. По команде ADI OF происходит продолжение 2D и 0F. В двоичном коде:
В результате сложения (А) = ЗС(1б).
б) По команде MVI В, 54 происходит загрузка константы 54 регистр В, а по команде MOV А, В – ее пересылка в регистр По команде SUI 22 происходит вычитание из константы 54 константы 22.
В двоичном коде:
В результате вычитания (А) = 32(16).
в) По команде MVI А, 14 происходит загрузка константы 14 в регистр А. По команде SUI 2D происходит вычитание из 14 константы 2D.
В двоичном коде
Так как число -00011001 в дополнительном коде 11100111, результате вычитания получим (А) = Е7(16).
г) (A) = AF, (CY) = 1.
д) (L) = 00.
e) (H) = 89, (L) = FF.
Р6.30. a) (A) = BF; б) (Н) = СР; (L)=1B; в) (D) = OB; (Е) = 21; г) (A) = FC; (H) = 9F; (L) = 2B;
д) (B) = D1, (С) = 49; e) (H) = CE, (L) = 7A.
Р6.31. а) Решение приведено в табл. Р6.1.
Таблица Р6.1
Адрес ячейки памяти |
Содержимое (мнемокоды и операнды) |
Выполняемая операция |
Результат операции |
Число тактов |
0005 |
MVI A |
(A)¬áB2ñ |
(A) = 00001110 |
7 |
06 |
0E |
|||
07 |
ADD L |
(A)¬(A)+(L) |
(A) = 11111010 |
4 |
08 |
JNZ |
Переход к 000С, если (А) ¹ 0 |
Переход к 000С |
10 |
09 |
0C |
|||
0A |
00 |
|||
0B |
MOV A, C |
(A)¬(C) |
Пропуск |
5 |
0C |
INR A |
(А)¬(А)+1 |
(А) = 11111011 |
5 |
0D |
MOV C, A |
(С)¬(А) |
(С) = (А) = 11111011 |
5 |
Всего тактов N = 31 (команда MOV A, C не выполняются), время выполнения t = 15,5 мкс, содержимое аккумулятора после выполнения программы (A) = FB.
б) (А) = 6F, t = 20 мкс;
в) (А) = 00, t = 8,5 мкс;
г) (А) = 41; t = 13 мкс;
д) (А) = Е2, t = 19 мкс;
е) (А) = 10, t = 28 мкс.
Р6.32. а) Программа содержит цикл (ячейки 0004…0008), который выполняется 5 раз;
(Порт 05) = 05; t = 0,5(7 + 7 + (5 + 4 + 10)×5 + 5 + 10) = 62 мкс;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.