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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2009, 13:19   #1
Vohakisa
Пользователь
 
Регистрация: 11.05.2009
Сообщений: 47
По умолчанию Резидентная программа. Работа с буфером клавиатуры

Вот задали написать резидентную программу, которая по нажатию на клавишу F1 записывает в буфер клавиатуры строку "OPEN".
Написать нужно в асемблере, с которым я не очень дружу =), если кто знает ссылки, на решение похожих задач, пожалуйста поделитесь ими.
Vohakisa вне форума Ответить с цитированием
Старый 18.06.2009, 14:27   #2
Vohakisa
Пользователь
 
Регистрация: 11.05.2009
Сообщений: 47
По умолчанию

Если у кого есть, дайте код не резидентной программы, которая записывает в буфер клавиатуры строку "OPEN" по нажатию на клавишу F1.

Код:
;---очистка буфера перед ожиданием нажатия клавиши
   MOV  AH,0CH    ;выбираем функцию DOS 0CH
   MOV  AL,1      ;выбираем функцию ввода символа
   INT   21H       ;чистим буфер, ждем ввода

;---ждем нажатия клавиши
   MOV  AH,0       ;номер функции ожидания ввода
   INT  16H        ;получаем введенный код
   CMP  AL,0       ;проверка на расширенный код
   JE   EXTENDED_CODE   ;если да, то на спец. процедуру

EXTENDED_CODE:  INT  21H        ;берем второй байт кода
                          CMP  AL,59    ;проверяем на нажатие клавиши "F1"
                          JMP  F_1       ;если да, то на процедуру
F_1:
Вроде код выглядит примерно так, помогите с процедурой которая записывает слово "OPEN" в буфер клавиатуры.

Последний раз редактировалось Vohakisa; 18.06.2009 в 14:50.
Vohakisa вне форума Ответить с цитированием
Старый 18.06.2009, 16:03   #3
Vohakisa
Пользователь
 
Регистрация: 11.05.2009
Сообщений: 47
По умолчанию

Впринцыпе я уже нашол решение задачи, вот только хочу спросить:
вот эта команда запишет строку в буфер клавы?
Код:
mov al,"OPEN"
или нужно писать так?
Код:
mov al,0x18 ;сканкод клавиши "o"
mov al,0x19 ;сканкод клавиши "p"
mov al,0x12 ;сканкод клавиши "e"
mov al,0x31 ;сканкод клавиши "n"
Vohakisa вне форума Ответить с цитированием
Старый 18.06.2009, 16:09   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
вот эта команда запишет строку в буфер клавы?
Нет эта команда наполнит регистр и только. Можно так попробовать если компилятор твой поддерживает расширенные регистры:
Код:
mov eax,"OPEN"
mov ebx,18h
mov [ebx], eax
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.06.2009, 00:16   #5
Vohakisa
Пользователь
 
Регистрация: 11.05.2009
Сообщений: 47
По умолчанию

Спасибо большое
Vohakisa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа позволяющая установить с клавиатуры новую дату и новое текущее время men73 Фриланс 1 11.06.2009 20:23
принадлежит ли число, введённое с клавиатуры отрезку (а;в). Границы отрезка вводятся с клавиатуры Maria, Russia Помощь студентам 3 17.02.2009 22:01
Работа с буфером обмена(win) NikLik Общие вопросы Delphi 6 24.06.2008 00:59
работа с буфером данных alexs2141 Общие вопросы C/C++ 5 06.06.2008 12:45
Резидентная программа! Nemesisking Общие вопросы C/C++ 8 29.09.2007 08:46