Дипломная работа: Устройство сбора информации
cwd equ 82h ; Управляющее слово
portA equ 98h ; Aдрес порта А
portB equ 99h ; Адрес порта В
portC equ 9Ah ; Адрес порта С
ppiCR equ 9Bh ; Адрес регистра управления
start_1 equ 01h ; Управляющий уровень START_1
start_0 equ 00h ; Управляющий уровень START_0
; Основная программа
.code ; Сегмент кода программы
mov bx, 2E00h ; Загрузка начального адреса RAM в регистр BX
mov sp, 0F00h ; Загрузка указателя стека SP
mov cx, 00FFh ; Загрузка в регистр CX количества циклов
mov dx, ppiCR ; Формирование адреса РУС ППИ
mov al, cwd ; Формирование управляющего слова
out dx, al ; Загрузить в PPI управляющее слово
mov dx, portC ; Формирование адреса порта С
mov al, 00h ; AL-00h
out dx, al ; Обнуление порта С
start: mov al, start_0 ; AL-START_0
out dx, al ; Формирование START=0
call delay ; Вызов подпрограммы DELAY
wait: in al, portB ; Проверка готовности
cmp al, 00h ; Сравнение al с числом 00h
jnz wait ; Если не равно, то перейти на wait
in al, portA ; AL-D0...D7
in ah, portB ; AH-D8, D9
mov [bx], al ; Сохранить младшую часть результата в ОЗУ
inc bx ; Увеличить bx на 1
mov [bx], ah ; Сохранить старшую часть результата в ОЗУ