out PIC_ICW1, al al, 01000000b ; Запись ICW2 в КП (номер вектора прерывания)
out PIC_ICW2, al al, 00000000b ; Запись OCW1 в КП (маскирование прерываний)
out PIC _ICW1, al ; Разрешение аппаратных прерываний
;-
; - Начало основной программы -
;-:
ProgramKlavIn ProgramCalculateY1SetY1SetInd ProgramStart
;-
; - Подпрограмма обработки прерывания -
;-: ax ProgramCalculateY2SetPIT ax
;-
; - Подпрограмма опроса клавиатуры (порта А ППА) -
;-: ax dx bx
; Принять и сохранить значение Х
in ax, PPA_A
mov ds: Data_X, ax
; Принять и сохранить значение К
in ax, PPA_B ds: Data_K, ax
bx dx ax
;-
; - Подпрограмма рассчитывает У1 и выводит его в порт С -
;-SetY1SetInd: ax dx bx
; расчет У1
mov ax, ds: Data_X ; Перемещение переменной X в ax
cmp ax, ds: Data_K ; Сравнивание X и K
jl xmin ; Если X меньше К, то переход на метку xminax, ds: Data_K ; Перемещение переменной K в ax
xmin: add ax, ds: Data_x ; MIN (X, K)+X
mov ds: Data_Y1, ax ; Cохранение результата
; Вывод в порт С
mov bx, ax
and ax, 0000000000001111b ; выделение младшей тетрады в ax
and bx, 0000000011110000b ; выделение старшей тетрады в bx ax, bx ; младшая и старшая тетрады в общий регистр ax
out PPA_C, al
bx dx ax
;-
; - Подпрограмма расчета Y2 и программирования ПИТ -
;-SetPIT: ax dx
; расчет У2 ax, ds: Data_X ; Перемещение переменной X в ax
cmp ax, ds: Data_K ; Сравнивание X и K
jg xmax ; Если X меньше К, то переход на метку xminax, ds: Data_K ; Перемещение переменной K в ax
xmax: add ax, 4d ; MAX (X, K)+4
mov ds: Data_Y2, ax
; программирование ПИТ по значению У2 ax, 0000000000011110b ; записать младший байт в счетчик 0
; и установить режим 3
out Adr_PIT_U, al
out Adr_PIT_0, dl ax, 0000000000101110b ; записать старший байт
out Adr_PIT_U, al Adr_PIT_0, dh ax, 0000000000001110b ; защелкнуть Adr_PIT_U, al dx ax
;-
; - Подпрограмма расчета Y3 -
;-SetPIT: ax dx
; расчет У3
mov ax, ds: Data_X ; Перемещение переменной X в ax
cmp ax, ds: Data_K ; Сравнивание X и K
jg xmax2 ; Если X меньше К, то переход на метку xminax, ds: Data_K ; Перемещение переменной K в ax
xmax2:ax, 2d ; MAX (X, K)*2 ds: Data_Y3, ax
; Программирование ПИТ для У3 ax, 0000000001010000b ; записать младший байт в счетчик 0
; и установить режим 3
out PIT_U, al
out PIT_1, dl ax, 0000000001100000b ; записать старший байт
out PIT_U, al PIT_1, dh ax, 0000000001000000b ; защелкнуть PIT_U, al dx
pop ax
ret
; - После сброса процессор выполняет команду из адреса CS:FFF0h
ORG 0FFF0hProgramBegin
ProgramBegin
Читайте также
Разработка комплекта электрических схем маршрутной релейной централизации блочного типа
Целью дипломного проектирование являлась разработка комплекта
электрических схем маршрутной релейной централизации блочного типа (БМРЦ) для
использования их студентами техникума в качест ...
Применение системы автоматического проектирования на ИП Суслова
Почти
все крупные предприятия используют в своей работе возможности компьютерной
техники, в частности CAD, CAM, САЕ технологии, т.к. они предоставляют ряд
преимуществ, таких как ...
Проектирование цифрового устройства для реализации типовых микроопераций
Разработать функциональную и принципиальную схему операционного
устройства исходя из основных параметров по вариантам.
Также требуется предоставить блок схемы алгоритмов выполнения опе ...