Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
6
Добавлен:
02.05.2014
Размер:
74.75 Кб
Скачать

Пример подпрограммы обмена по прерыванию

TITLE CTRNAM (EXE)

STCKSG SEGMENT PARA ‘Stack’ ; Инициализация сегмента стека

DW 32 DUP (?)

STCKSG ENDS

;----------------------------------------------------

DATASG SEGMENT PARA ‘Data’ ; Инициализация сегмента данных

VECT5 EQU 5H ; Задание векторов

VECT10 EQU 10H ; прерываний

VECT11 EQU 11H

ACPSTRT EQU 14300H ; Адрес запуска АЦП

ACPREAD EQU 14301H ; Адрес чтения из модуля

ACPWRITЕ EQU 14302H ; Адрес записи в модуль

ACPFLAG EQU 14303H ; Адрес маски

KBSAVE DWORD ? ; Переменная вектора прерывания

ENDFLAG DB 0 ; Флаг окончания обмена

DATASG ENDS

;----------------------------------------------------

INTTAB SEGMENT AT 0H ; Получаем доступ к таблице векторов

ORG VECT5*4H

KBADDR LABEL DWORD

INTTAB ENDS

;----------------------------------------------------

CODESG SEGMENT PARA ‘Code’

BEGIN PROC FAR

ASSUME CS:CODESG, DS:INTTAB, SS:STCKSG, ES:DATASC

PUSH DS

SUB AX, AX ; Проводим

PUSH AX ; начальную

MOV AX, DATASC ; инициализацию

MOV ES, AX ; сегментов

MOV AX, INTTAB

MOV DS, AX

CLI ; Запрет прерываний

MOV AX, WORD PTR KBADDR

; Устанавливаем новый

MOV WORD PTR KBSAVE, AX

; вектор прерывания

MOV AX, WORD PTR KBADDR + 2

; и сохраняем старый

MOV WORD PTR KBSAVE + 2, AX

MOV WORD PTR KBADDR, OFFSET CALC

MOV WORD PTR KBADDR + 2, CS

Соседние файлы в папке Курсовой - Стробоскопический АЦП