Билет 7
19. К порту ввода МПС подключен восьмиразрядный датчик давления. Предложить фрагмент принципиальной (функциональной) электрической схемы МПС. Составить программу, обеспечивающую подсчет количества измерений, превышающих значение, заданное константой в памяти программ.
Next: mov R1,#0 ; обнуление счетчика
mov A,P1 ; прием значения
clr c ; сравнение с
subb A,#Const ; константой
jc Next ; если меньше то работаем далее
inc R1 ; если больше то инкремент счетчика
sjmp Next ; работаем далее
20. Составить подпрограмму на Ассемблере, которая определяет и запоминает в любых ячейках памяти адрес первого и последнего ненулевого элемента массива из тысячи чисел, расположенного в последовательных ячейках ОЗУ. Определить механизм передачи параметров в подпрограмму, привести пример вызова разработанной подпрограммы.
NumAdrNonZero1000: clr c ; признак поиска первого нулевого эл.
mov R2,#10 ; загрузка счетчиков
L2: mov R3,#100 ; на 1000 элементов
L3: movx A,@DPTR ; чтение элемента массива
jc L2 ; проверка первый или последний
jz L1
mov 10,DPL
mov 11,DPH
setb c ; признак поиска последн. нулевого эл.
L2: jz L1
mov 12,DPL
mov 13,DPH
inc DPTR ; установка указателя на след. Элемент
L1: djnz R3,L3 ; обработка счетчиков цикла
djnz R2,L2
ret ; возврат из подпрограммы
Пример вызова:
mov DPTR,#Massive ; загрузка в указатель адреса начала массива
acall NumAdrNonZero1000 ; вызов подпрограммы