DECM: MOV RO, #17Н ;3агрузка в R0 числа 23
ХСН A, @(R)0, А ;Обмен содержимого аккумулятора и
;ячейки 23
DEC A ;(А)¬(А) – 1
XCH @ RO,A ;Обмен содержимого ячейки 23 и
;аккумулятора
Р6.79. Фрагмент программы:
SUMMR: MOV A,#2FH ;3загрузка в аккумулятор числа 2FH
SEL МВ0 ;Выбор банка памяти МВ0
JMP M1 ;Переход к программе Ml
Ml: MOVP3 А, @ А ;3агрузка в аккумулятор содержимого
;ячейки памяти 2FH со страницы 3 блока
;памяти
SEL RB0 ;Выбор банка регистров RB0
ADD A,R5 ;(А)¬(А)+(R5)
SEL RBI ;Выбор банка регистров RB1
MOV R7,A ;(R7)¬(A)
P6.80. Фрагмент программы
MASK: SEL RB0 ;Выбор банка регистров RB0
MOV R0,#29H ;3агрузка в R0 числа 41
ANL A,@R0 ;Логическое умножение QÙN
MOV R0,A ;(R0)¬(A)
Результат вычисления: (А)=11101101Ù000001 11 =00000101 = 05Н
P6.81. Фрагменты программ а) OUTR: SEL RBO ;Выбор банка регистров RB0
MOV A, R6 ;(A)¬(R6)
OUTL P1,A ;Вывод в порт Р1
б) OUTM: SEL MBO ;Выбор блока памяти МВ0
JMP Ml ;Переход к программе Ml
Ml: MOV A,#OF1H ;3агрузка аккумулятора числом F1H
MOVP3 A,@A ;3агрузка в аккумулятор содержимого
;ячейки памяти F1H страницы 3
OUTL P1,A ;Вывод в порт Р1
P6.82. Фрагмент программы:
THRESQ: INA. PI ;Ввод числа N из порта Р1
XRL A,#Q ;(A)¬NÅQ
JZ L1 ;Переход к L1 при (А) = 0
MOV A,#01H ;(A)¬1
L1: OUTL P2,A ;Вывод в порт Р2
JMP THRESQ ;Переход к началу программы
Команды XRL A,#Q (сложение по mod 2) и JZ позволяют сравнить числа N и Q, так как при N = Q NÅQ = 0.
Р6.83. В системе команд МК1816 нет операции вычитания, но есть операция инвертирования содержимого аккумулятора CPL А. Поскольку d=28 - 1-d,получим
y = d1 - d2 = - 28 + 1 +d1 +. Первое слагаемое образует перенос, который в данном случае учитывать не следует. Программа вычитания:
SUBRA: CPL A ;(A)¬()
ADD A,R3 ;(A)¬(A) + (R3)
INC A ;(A)¬(A) + 1
CLP С ;Очистка триггера переноса
Р6.84. В МК1816 нет команды сравнения. Поэтому используем соотношение , где - инверсия N2. При выполнении в аккумуляторе операции :
если N1 > N2, то образуется перенос (С) = 1;
если N1 £ N2, то (С)=0.
Таким образом программа должна содержать операции инвертирования N2, суммирования N1 и и проверки признака переноса.
СОМР: IN A,P1 ;Ввод N1
MOV R1,A ;Хранение N1 в R1 ОЗУ
IN A,P2 ;Ввод N2
MOV R2,A ;Хранение N2 в R2 ОЗУ
CPL А ;Инвертирование N2
ADD A,R1 ;(A)¬N1+
JC К1 ;Переход по метке К1 при N1 > N2
MOV A,R2 ;(A)¬N2
OUTL P2,A ;Вывод N2
JMP СОМР ;Повторение ввода N1 и N2
K1: MOV A,R1 ;(А)¬N1
OUTL Р1,А ;Вывод N1
JMP СОМР ;Повторение ввода N1 и N2.
Р6.85. В системе команд МК1816 имеются команды обмена типа ХСН, которые позволяют обменивать содержимое аккумулятора и регистров ОЗУ.
Р6.86. Фрагмент программы:
START: CLR А ;Очистка аккумулятора
MOV Т,А ;Очистка счетчика
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.