В задаче 1 номера битов i, j определяются как остаток от деления на 8 чисел 51 и 51 + 4. В задачах 2, 3 клавиши "i", "j" соответствуют номеру варианта ** и числу ** + 1. Т.е. для первой задачи i 1, j 6, а для второй – i 5, j 6. ЗАДАЧА 3.1. Написать программу, обеспечивающую отображение состояния i-го=3 и j-го=7 битов операнда на индикаторах Z, C. Адрес операнда - 8051. Программу проверить для операндов FF, 0F, F0, 00. Программа, реализующая этот алгоритм, имеет вид: 8200 3A; M0: LDA 8051H ; А <-- операнд 8201 51; 8202 80; 8203 47; MOV B,A ; В <-- операнд 8204 E6; ANI 40H ; выделение бита 6 8205 40; 8206 0F; RRC ; сдвиг ВПРАВО на 8207 0F; RRC ; 3 разряда 8208 0F; RRC ; 8209 4F; MOV C,A 820A 78; MOV A,B 820B E6; ANI 02H ; выделение бита 1 820C 02; 820D 07; RLC 820E B1; ORA C ; объединение 820F D3; OUT 02H ; вывод в порт С. 8210 02; 8211 C3; JMP M0 8212 00; 8213 82; Проверка программы показывает, что при операнде FF горят оба индикатора, при операнде F0 горит индикатор Z, при операнде 0F - индикатор C, а при операнде 00 не горит ни один из индикаторов.
ЗАДАЧА 3.2. Написать программу, обеспечивающую отображение состояния клавиши "i" на индикаторе Z (нажато - горит, отжато - не горит). Программа, анализирующая состояние клавиши "3" и отображающая ее на индикаторе, имеет вид: 8200 3E; M0: MVI A,60H ; инд. выкл. 8201 60; 8202 D3; M1: OUT 02H ; вывод в порт С 8203 02; 8204 DB; IN 00H ; чтение из порта А 8205 00; 8206 FE; CPI DFH ; кл. "3" нажата ? 8207 F7; 8208 C2; JNZ M0 8209 00; 820A 82; 820B 3E; MVI A,68H ; инд. вкл. 820C 68; 820D C3; JMP M1 820E 02; 820F 82;
ЗАДАЧА 3.3. Написать программу, обеспечиващую включение индикатора С при нажатии на клавишу "3" и выключение при нажатии на клавишу "7". Программа включения-выключения индикатора С имеет вид: 8200 06; M0: MVI B,60H ; инд. выкл. 8201 60; 8202 78; M1: MOV A,B 8203 D3; OUT 02H ; вывод в порт С 8204 02; 8205 DB; IN 00H ; чтение из порта А 8206 00; 8207 FE; CPI BFH ; кл. "7" нажата? 8208 7F; 8209 CA; JZ M0 ; да 820A 00; 820B 82; 820C FE; CPI DFH ; кл. "3" нажата? 820D F7; 820E C2; JNZ M1 ; нет 820F 02; 8210 82; 8211 06; MVI B,64H ; да, инд. вкл. 8212 64; 8213 C3; JMP M1 8214 02; 8215 82;
ЗАДАЧА 3.4. Написать программу, обеспечивающую включение индикатора Z при одновременном нажатии на клавиши "3", "7". Программа, реализующая этот алгоритм, имеет вид: 8200 06; M0: MVI B,60H ; инд. выкл. 8201 60; 8202 78; M1: MOV A,B 8203 D3; OUT 02H ; вывод в порт С 8204 02; 8205 DB; IN 00H ; чтение из порта А 8206 00; 8207 FE; CPI 9FH ; кл. “5” и "6" нажата? 8208 77; 8209 C2; JNZ M0 ; нет 820A 00; 820B 82; 820C 06; MVI B,68H ; да, инд. вкл. 820D 68; 820E C3; JMP M1 820F 02; 8210 82;
ЗАДАЧА 3.5. Написать программу, обеспечивающую включение индикатора Z при последовательном нажатии на клавиши "6", "5". Программа, реализующая этот алгоритм, имеет вид:
8200 21 LXI H,8000H ; HL <-- 8000 8201 00 8202 80 8203 06 MVI B,O2H ; счетчик цикла 8204 02 8205 3E MVI A,60H 8206 60 8207 D3 OUT 02H ; инд. C выкл. 8208 02 8209 DB M1: IN 00H ; чтение из порта А 820A 00 820B BE CMP M ; шифр совпал ? 820C C2 JNZ M1 ; нет 820D 09 820E 82 820F 23 INX H ; да 8210 05 DCR B 8211 C2 JNZ M1 ; конец ? 8212 09 8213 82 8214 3E MVI A,68H 8215 68 8216 D3 OUT 02H ; инд. С вкл. 8217 02 8218 76 HLT ; останов.