Создание TSR программ в операционной системе MS DOS, страница 13

mov                               аl,00000110b           ;остановим второй канал

out                                 0ah,al

jmp                               short $+2

pop                                ax

; установим направление передачи DMA no AL и сбросим указатель

; последовательности байт

out                                 0ch,al                                     ;сбросим указатель

jmp                               short $ +2

out                                 0bh,al                                     ;установим режим работы,

;переданный в AL

jmp                               short $+2

; вычислим адрес        буфера

push                              cx                                           ;запомним длину данных

mov                               ax,es                                       ;адрес сегмента для

;сдвига

mov                               cl,4

rol                                 ax,cl                                       ;сдвинем

mov                               ch,al                                       ;остаток от сдвига и

;данные

and                                al,0f0h                                    ;сбросим остаток сдвига

add                                ax,di                                       ;прибавим смещение

adc                                ch,0                                        ;добавим потерянную 1

;передадим адрес

out                                 4,al                                         ;передать младшую часть

jmp                               short $ +2

mov                               al,ah                                       ;старшая часть

out                                 4,al                                         ;передать старшую часть

jmp                               short $ +2

mov                               al,ch                                       ;старшие четыре бита

and                                al,0fh                                      ;оставим только их

out                                 81h,al                                     ;запишем регистр

;страницы

jmp                               short $ +2

;запишем длину данных

pop                                ax                                           ;восстановим длину

dec                                ax                                           ;для DMA должно быть

;минус 1

out                                 5,al                                         ;младший байт длины

jmp                               short $ +2

mov                               al,ah                                       ;перенесем старший байт

out                                 5,al                                         ;старший байт длины

jmp                               short $ +2

; запустить канал 2 DMA

mov                               al,2                                         ;запустим второй канал

out                                 0ah,al

jmp                               short $+2

sti

pop                                cx                                           ;восстановим регистры

pop                                ax

ret

SetDMA                       endp

Процедура преобразования двоичного числа

в печатную форму

Вход:     AL - число в двоичном виде

Выход:   AX - число в печатной форме

 


HexChaг                       proc

push                              bx

хог                                ah,ah

mov                               bl,16

div                                 bl

add                                al,30h

cmp                               al,39h

jnа                                 Hex1

add                                al,7

Hex1 :

add                                ah,30h

cmp                               ah,39h

jna                                 Hex2

add                                ah,7

Hех2 :

pop                                bx

ret

HexChar                       endp

code                              ends

end                                main