Программное обеспечение. CONTROL – основная программа работы МПС. Адрес ячейки ОЗУ для хранения состояния выходов порта вывода, страница 4

MOV          M, A                                       

MVI           A,70H                           

OUT           SELPT1_RUS              ; Управл. слово ПТ1  режим СТ1

MVI           A,96H                         

OUT           SELPT1_ST1               ; Загрузка в СТ1  ПТ1 мл-го байта  N2

MVI           A,05H                           

OUT           SELPT1_ST1               ; Загрузка в СТ1  ПТ1 ст-го байта   N2

;Вывод      1   в   4-й  разряд порта

IN               SELPIO1_PC

          ORI            00010000B

OUT           SELPIO1_PC                   ;Выдать U4=1

; Обработка сигнала W3, функция е( )

MET_DL1:

           LXI            H, ADR_K3                  ;  (BC)      (K3)

MOV         C, M            

INX           H                           

MOV         B, M            

           LXI            H, DATA_W3               ;(DE)     (W3)

MOV         E, M            

MVI          D,00H

CALL        M16_16F                      ; Вызов под-мы умножения (K3*W3)

    LXI             H,ADR_K4

MOV          A,C

SUB           M                                   ;Вычитаем младшие байты

MOV          C,A

INX            H

MOV          A,B

SBB            M                                   ;Вычитаем старшие байты

MOV          B,A                                ; Результат (K3*W3 - K4 )  

                                                          ;   в регистровой паре BC

LXI            H, ADR_K5

 MOV         A,M

ADD           C                                  ;Cуммируем младшие байты

MOV          C,A

INX            H

MOV          A,M

ADC           B                                   ;Cуммируем старшие байты

MOV          B,A                               ; Результат  (K3*W3 - K4+K5) в BC

          LXI             H,DATA_Z

MOV           M,C                             

INX             H

MOV           M,B                              ;Сохраняем  (K3*W3 - K4+K5)

JMP              MET_CAP                   ;Перейти на метку MET_CAP

; Проверка нажатия кнопки “Останов”

CHECK:     

IN                SELIPORT                    ;Проверка вкл. SA4

ANI             0010 0000B                   ;Выделить разряд D5

JZ                STOP                            ;Если SA4 замкнут

EI               

RET            

STOP:        

MVI           A,1000 0000B

OUT           SELPIO2_PB                  ;Включить VD9 “Останов”

HLT

;*********************************************************************

; ISR1- подпрограмма обработки запроса прерывания от кнопки SB2 “Прерывание”

;*********************************************************************

ISR1: PUSH          PSW                            ;Сохранить в стеке содержимое

PUSH          B                                 ;регистров A, F, B, C, D, E, H, L

PUSH          D                

PUSH          H

Vozvrat:

;Показать  X1,X2,X3,X4,Y1,Y2,Y3

LXI             H,DATA_X

MOV           A,M

ANA           0000 1111B

LXI             H,DATA_Y

ANA           M

OUT            SELPIO2_PB

IN                SELIPORT           

ANI             07H                             ;Выделить разряды D2-D0

CPI              07H            

JZ                CHEK                          ;Переход, если SA1-SA3 разомкнуты

CALL          IDENTIF                     ;Вызов подпрограммы идентификации

MVI            B,0H

;Вывод на  дисплей

DISPLAY:

LXI              H, DATA_W1

MOV            A,C

ADD            A

MOV            C,A

MOV            A,L

ADD            C

MOV            L,A

MOV           A,L

ACI             0H

MOV           H,A

DAD           B                                 ;Установка для  вывода             

MOV           A,M            

ANI            0FH            

MOV           C, A           

CALL          CROSSCODE             ;Перекодировка

OUT            SELPIO2_PC              ;Вывод на HG1

MOV           A,M

RRC           

RRC