Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2009, 21:02   #11
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

10 прерывание отвечает за тоже самое, за что отвечало 21, только его можно использовать при запрещенных прерываниях, а 21 - нет.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 03.12.2009, 21:05   #12
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

Так мой мозг лопнул, можешь чуть код покоректировать? или просто скажи на какой этап лучше венуться
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 03.12.2009, 21:16   #13
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Код:
.model tiny
.code
	org 100h
main:
;poluchenie IDT
	push es
	xor ax,ax
	mov es,ax
	;poluchenie 09h v old_handler
	mov ax,word ptr es:[09h*4]
	mov word ptr old_handler,ax
	mov ax,word ptr es:[09h*4+2]
	mov word ptr old_handler+2,ax
	
	;zap new_handler
	mov ax,cs
	mov word ptr es:[09h*4+2],ax
	mov ax,offset handler
	mov word ptr es:[09h*4],ax
	
	;rezedentno
	pop es
	mov bx,offset last_byte
	int 27h
	
handler:
	push es ds si di cx bx dx ax
	
	xor ax,ax
	in al,60h
	;w
	cmp al,11h
	jne standart_handler
	
	xor dx,dx
	div cs:d
	cmp ax,10
	jl met
	
	add ax,'A'
	jmp io
met:
	add ax,'0'
io:
	mov ah,0eh
	mov bh,7
	int 10h
	
	cmp dx,10
	jl met2
	
	add dx,'A'
	jmp io2
	
met2:
	add dx,'0'
io2:
	mov ah,0eh
	int 10h
	
standart_handler:
	pop ax dx bx cx di si ds es
	jmp dword ptr cs:old_handler
	
	old_handler dd ?
	d dw 16
last_byte:
end main
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 04.12.2009, 18:16   #14
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

а почему он как-то странно выдает результат? может конечно я что-то не понимаю. Просто нажимаю w он его печатает, а если зажать клавишу выдается 11 потом на его место w
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 04.12.2009, 18:38   #15
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Может я что-то непонял, но у меня, если зажать w выдается строка вида
11w11w11w11w11w11w11w11w
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 04.12.2009, 18:44   #16
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

просто нужно при нажатии выдавть код саму букву выводить не надо, а если другие символы то просто вывести их. Тоесть ввели w появилось 11
ввели r вывело r
Единственное, что ограничивает полет мысли программиста-компилятор

Последний раз редактировалось Sparky; 04.12.2009 в 18:52.
Sparky вне форума Ответить с цитированием
Старый 04.12.2009, 19:00   #17
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Ну значит не надо передовать управление стандартному обработчику, после вывода "11", а возвращать управление по iret.
Только перед этим вставте строки
Код:
mov     al,20H             ;послать сигнал "конец прерывания"
out     20H,al             ; контроллеру прерываний
и не забудьте про pop.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик вектора прерывания Festovec Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 07.04.2010 10:05
Создание резидентной программы (обработчик прерывания). Петруха Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 23.03.2009 16:31
Прерывания на портах ForzaJuve Win Api 3 16.02.2009 18:40
Прерывания Kn793 Общие вопросы Delphi 3 10.01.2009 18:43
прерывания sergei64_89 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 22.04.2008 13:37