"Роберт Джордайн. Справочное пособие программиста - 2 (ассемблер, операционная система MS DOS)" - читать интересную книгу авторарегистра, чтобы процессор мог читать из регистра задвижки. После
этого две инструкции IN дадут сначала младший, а затем старший байт в регистре AL. Наконец, восстановите первоначальное значение регистра задвижки, чтобы счет продолжался в пределах указанного диапазона времени. ;---установка адресов портов COMMAND_REG EQU 43H ;адрес командного регистра CHANNEL_2 EQU 42H ;адрес канала 2 CALL SET_COUNT ;установка диапазона . ;---здесь программа работает, а затем требует случайное число . CALL GET_NUMBER ;получение случайного числа . . ;---начинаем отсчет канала 2 SET_COUNT PROC MOV AL,10 11 011 0B ;канал 2,оба байта, режим 3,дв.сч. OUT COMMAND_REG,AL ;посылаем в командный регистр MOV AX,10000 ;значение счетчика OUT CHANNEL_2,AL ;посылаем младший байт MOV AL,AH ;передвигаем старший байт в AL OUT CHANNEL_2,AL ;посылаем старший байт SET_COUNT ENDP ;---получение случайного числа READ_NUMBER PROC ;---пересылаем значение счетчика в регистр задвижки MOV AL,10000110B ;требуемая команда OUT COMMAND_REG,AL ;посылаем в командный регистр ;---читаем значение счетчика MOV AL,10110110B ;запрос на чтение/запись OUT COMMAND_REG,AL ;посылаем запрос IN AL,CHANNEL_2 ;получаем младший байт MOV AH,AL ;временно храним его в AH IN AL,CHANNEL_2 ;получаем старший байт CALL SET_COUNT ;восстанавливаем задвижку XCHG AH,AL ;ставим байты на место RET ;теперь случайное число в AX READ_NUMBER ENDP .h2 Раздел 2. Создание звука. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|