assembler 9h oбрaбoт4ик

программирование assembler ассемблер tasm

нужен простейший oбpaбoт4ик прерываний клавы. при нажатии на любую кнопку чтобы выводилось сообщение "нажата кнопка". ms-dos. tasm

Примечание:
IRQ1 (INT 9) - прерывание клавиатуры. это прерывание вызывается при каждом нажатии и отпускании клавиши на клавиатуре.

Примечание:
2BVOG
нужен совсем простой обработчик. из того что вы написали понятны менее половины команд=)

Примечание:
не нужны никакие обработки сочетаний клавиш, вывод нажатых скэн- и аски- кодов клавиш. просто нужно выполнить любое простое действии (например вывод заданной строки), функцией-обработчиком прерывания.
Ответы:
9h - это что?
To BVOG: зачёт
Ты сам написал "обработки сочетаний клавиш" ;)
To BVOG: ему кажись просто надо вызвать DOSовское прерывание и вывести символ :D
adasiko: 9h - это номер прерывания.
bagwll: вот как делаю я:
keyboard:
pusha
xor ax, ax
in al, 0x60
;Если нажат shift ctrl - то не обрабатываем
mov ah, al
and ah, 0x80
jnz asknot
; В al - код символа по таблице ascii(см. ниже)

; Операции с кодом символа, я выбрал смена первого символа на экране(думаю вывод текста будет не сложно организовать, правда только английскими буквами, если у вас дос не грузит русские)
mov ax, 0xB800
mov ds, ax
inc byte [ds:1]

; Сбрасываем заявку
asknot:
in al, 0x61
mov ah, al
or al, 0x80
out 0x61, al
xchg ah, al
out 0x61, al

; Сообщаем о том, что прерывание обработали
mov al, 0x20
out 0x20, al
out 0a0h, al

popa
iretd
ascii db 0,0,'1234567890-+',0,0,'QWERTYUIOP[]',0,0,'ASDFGHJKL;',"'`",0,0,'ZXCVBNM,./',0,'*',0,' ',0,0,0,0,0,0,0,0,0,0,0,0,0,'789-456+1230.',0,0
Тогда так:
keyboard:
pusha


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.