Цифровые устройства и микропроцессорные системы. Задачи и упражнения: Учебное пособие (Представление чисел и арифметические операции в цифровых устройствах. Микропроцессорные устройства и системы на базе МП КР580ВМ80), страница 63

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   Т,А                  ;Очистка счетчика