Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывод кода клавиши, при нажатии клавиши прога пишит код 
:(
    Опции темы
R0nin
  Дата 2.12.2005, 03:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 31.7.2005
Где: Минск (Белоруссия )

Репутация: нет
Всего: нет



Нада срочно пога выводящая на экран сообщение содержащее код нажатой клавиши!
пОМОГИТЕ ЛЮДИ ДОБРЫЕ! smile
--------------------
Фишка есть во всем, а если фишки нет, то это и есть фишка
PM MAIL ICQ   Вверх
oleg1973
Дата 2.12.2005, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: нет
Всего: 34



ОС какой?


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
R0nin
Дата 2.12.2005, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 31.7.2005
Где: Минск (Белоруссия )

Репутация: нет
Всего: нет



дося smile
--------------------
Фишка есть во всем, а если фишки нет, то это и есть фишка
PM MAIL ICQ   Вверх
Chingachguk
Дата 2.12.2005, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: 11
Всего: 18



.286
COM1 equ 0
text segment byte public
assume cs:text,ds:text
org 100h
begin:

mov ah,0
int 16h
; AL=ASCII code, AH=scan-code
; translate it
mov byte ptr Msg+19,al
; translate AH to hex
mov al,ah
rol al,4
push ax
and al,0Fh
cmp al,10
sbb al,69h
das
mov byte ptr Msg+9,al
pop ax
rol al,4
and al,0Fh
cmp al,10
sbb al,69h
das
mov byte ptr Msg+10,al

mov dx,offset Msg
mov ah,9
int 21h
retn
Msg db 'ScanCode=??h ASCII=?',13,10,'$'

Text Ends
end begin



--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
R0nin
Дата 3.12.2005, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 31.7.2005
Где: Минск (Белоруссия )

Репутация: нет
Всего: нет



А можно небольшие коминтарии к происходящему в пограмме, чтобы я мог защитится?
Или это будет наглость?
ОЧЕНЬ ПРОШУ! smile
--------------------
Фишка есть во всем, а если фишки нет, то это и есть фишка
PM MAIL ICQ   Вверх
Chingachguk
Дата 3.12.2005, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: 11
Всего: 18



Код


; Начало (оформление) программы
.286
text segment byte public
assume cs:text,ds:text
org 100h
begin:

; Начало программы
; Вызываем функцию BIOS ожидания нажатия клавиши
; В этот момент программа ожидает ввода
mov ah,0
int 16h

; BIOS возвращает ASCII-код нажатой клавиши в регистре AL
; (например, "S")
; а скен-код нажатой клавиши в регистре AH
; Попробуй несколько разных клавиш и посмотри что вернется
; AL=ASCII code, AH=scan-code
; translate it

; Выводим возвращенные значения на экран
; Для этого ASCII-код помещаем "как есть" в строку:
; 'ScanCode=??h ASCII=[b]?[/b]'
; Вместо вопроса
mov byte ptr Msg+19,al

; translate AH to hex
; Формируем изображения скен-кода в той же строке
; Эквивалентно примерно sprintf(Msg[9], "%02x", AH);
; Алгоритм несколько сложен для новичка,
; можно написать другой
; Общая задача - перевод числа в регистре AH (например, 69h)
; в строку - т.е. "69"
mov al,ah

; Формируем изображение старшего полубайта (9h) ~ AL>>4;
; или ~AL:=AL shr 4; Но при этом сохраняем старший полубайт:
; AL:=(AL shr 4) or (AL shl 4);
rol al,4
push ax

; Преобразование полубайта в AL в символ: 0,1..0Eh,0Fh -> '0',...,'F'
and al,0Fh
cmp al,10
sbb al,69h
das
mov byte ptr Msg+9,al
pop ax

; То же самое для старшего полубайта
rol al,4
and al,0Fh
cmp al,10
sbb al,69h
das
mov byte ptr Msg+10,al

; Строка сформирована. Выводим на экран ее средствами DOS
; Строка ограничена символом "$", по нему DOS определяет когда
; строка закончилась
mov dx,offset Msg
mov ah,9
int 21h

; Возвращаемся в DOS (return)
retn

; Строка сообщения
Msg db 'ScanCode=??h ASCII=?',13,10,'$'

; Оформление конца программы
Text Ends
end begin



--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Mephistopheles
Дата 4.12.2005, 05:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегущий от света
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 15.11.2005
Где: Где нет света

Репутация: нет
Всего: 6



Ну понаписали! smile
Код

...
mov ah, 10h
int 16h
...

В ah будем помешён код клавиши, если это раскладка цифровая или буквенная. Если рабочая клавиша, аля там F1 или SHIFT+F1, то надо смотреть AL.
--------------------
Ангелы и бесы кружат надо мной.Ангел или бес - делай выбор свой.Вспыхнуть огнём; вознестись до небесДелай выбор свой: ангел или бес?© Mephistopheles, бегущий от света.
PM MAIL WWW ICQ   Вверх
R0nin
Дата 4.12.2005, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 31.7.2005
Где: Минск (Белоруссия )

Репутация: нет
Всего: нет



smile smile я получц 9 балов! УРА товарищи!
Благодарю!
--------------------
Фишка есть во всем, а если фишки нет, то это и есть фишка
PM MAIL ICQ   Вверх
oleg1973
Дата 5.12.2005, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: нет
Всего: 34



R0nin
9 из скольки?


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
R0nin
Дата 6.12.2005, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 31.7.2005
Где: Минск (Белоруссия )

Репутация: нет
Всего: нет



из 10 smile а десять если с творческим подходом(спеть и станцевать наверно, никто не знает!) smile
--------------------
Фишка есть во всем, а если фишки нет, то это и есть фишка
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.4830 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.