title port
cseg segment para 'code'
assume cs:cseg
ORG 100h
begin PROC
jmp start
sym dw '0'
start:
in al,60h
xor ah,ah
mov sym,ax
mov ah,09h
lea dx,sym
int 21h
int 20h
begin endp
cseg ends
end begin
Assembler. Ввод символа из порта 60h.
Вот, что я написал. У меня выводится ошибка: "Not enough memory".
Код:
Насколько я знаю, 60h - порт клавиатуры, а у меня клава подключена через USB. Это значит, что для клавы будет другой порт? вообщем подскажите, как сделать ввод с клавиатуры с помощью in .
Программа в принципе правильно написана, но прочтёт она не символ, а код клавиши, нажатой или отпущенной последний раз. Чтобы прочесть код с ожиданием нажатия клавиши, необходимо написать обработчик прерывания клавиатуры, который исполнится при посылке клавиатурой данных.
УПШ-клавиатуры обычно работают как ПС\2 (аппаратно перенаправляются)