Анализ технического задания. Составление карты распределения адресного пространства. Модуль управления и индикации CPAN, страница 23

58 403F  B0 90                     mov al,byte ptr 10010000b

59 4041  E6 49                     out [49h],al

60 4043  B0 FF                     mov al,0FFh

61 4045  E6 48                     out [48h],al

62 4047  E6 48                     out [48h],al

63 4049  E6 48                     out [48h],al

64 404B  E6 48                     out [48h],al

65 404D  FB                        sti                ;Разрешение аппаратных прерываний.

66                                   ;---------------------------------------------------------------67                                   ;Ввод сигналов Х1...Х4 с цифровых датчиков,

68                                   ;логическая обработка сигналов  и формирование управляющего сигнала Y1

69                                   ;---------------------------------------------------------------70 404E                         MAIN_PROG:

71                                   ;Чтение значений Х1,Х2,Х3,Х4.

72 404E  E4 52                     in al,[52h] ;AL = X4 X3 X2 X1 0 0 0 0

73 4050  33 DB                     xor bx,bx

74                                   ;Преобразование формата хранения сигналов к удобному для обработки

75 4052  D0 C0                     rol al,1        ;сдвиг влево на 1 разряд

76                                   ;с установкой флага переноса

77 4054  80 D7 00                  adc bh,0        ;bh= 0 0 0 0 0 0 0   X4 - сложение с учетом переноса

78 4057  D0 C0                     rol al,1        ;далее - аналогично для X3,X2,X1

79 4059  80 D3 00                  adc bl,0        ;bl=X3

80 405C  D0 C0                     rol al,1

81 405E  80 D4 00                  adc ah,0        ;ah=X2

82 4061  D0 C0                     rol al,1        ;al = 0 0 0 0 X4 X3 X2 X1

83 4063  A2 0300r                  mov [x1234],al  ; x1234 - имя ячейки памяти

84 4066  24 01                     and al,1        ;al=X1

85                                   ;Вычисление логической функции f1 =X1+X2+X3+X4

86                                   ;Вычисление значения Y1 в AL

87 4068  32 C4                     xor al,ah       ;X1+X2

88 406A  32 C3                     xor al,bl       ;X1+X2+X3

89 406C  32 C7                     xor al,bh       ;X1+X2+X3+X4

90                                   ;Сравнение с нулем

91 406E  0A C0                     or  al,al       ;Вырабатывается флаг Z

92                                   ;Если равно единице, то выдаем сигнал 1

93 4070  74 0E                     jz notY1

94                                   ;Если f1 равна 1

95                                   ;Формирование Y1 длительностью Т1 = 90мс.

96                                   ;(Y1 устанавливается в '1', а через 90мс снова сбрасывается в '0')

97                                   ;Загрузка счетчика канала 0.

98 4072  B0 01                     mov al,00000001b  ;Устанавливаем сигнал Y1 в единицу

99 4074  E6 52                     out [52h],al

100 4076  B9 2328                   mov cx,9000

101 4079  E8 00BF                   call DELAY

102                                   ;Сигнал Y1 переводим в состояние 0.

103 407C  32 C0                     xor al,al

104 407E  E6 52                     out [52h],al ;

105 4080                         notY1: ; Если f1 равна 0 - ничего не делаем

106                                   ;--------------------------------------------------------------------107                                   ;Ввод аналоговых сигналов Х5 и Х6, преобразование их в цифровые

108                                   ;cигналы N5, N6, обработка,

109                                   ;формирование сигналов Y2, Y3

110                                   ;--------------------------------------------------------------------111                                   ;Чтение значения N6

112 4080  E6 61                     out [61h],al

113 4082  E4 58                     in al,[58h]