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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2010, 15:18   #1
Alex1991
Форумчанин
 
Аватар для Alex1991
 
Регистрация: 18.10.2008
Сообщений: 166
Вопрос пом. разобраться в программе по выводу скан-кода

Вот нашел программу по выводу скан-кода нажатой клавиши, хочу разобраться в ней:


1 столбец - это сивольное название клавиши
3 ст. - сам код нажатой клавиши
а что отображается в 2 столбце ?

Вот код:
Код:
sseg segment stack
db 128 dup(?)
sseg ends

dseg segment
msg  db 'Najmite klavishu',10,13,'$'
txt     db 10,13,'$'
hex   db '0123456789ABCDEF'
dseg ends

cseg segment
assume ss:sseg,ds:dseg,cs:cseg
start:
mov ax,dseg
mov ds,ax

mov ah,9 ;выводим приглашение
mov dx,offset msg
int 21h

nachalo:
mov ah,0 ; вводим клавишу
int 22
cmp al,1bh ; если это esc то выходим
je konec
     push ax
mov dl,al
mov ah,6
int 21h

mov ah,6 ; выводим пробел между данными
mov dl,' '
int 21h
     pop ax
     push ax
shr al,4
mov ah,0

mov si,ax
mov dl,[si+hex]
mov ah,6
int 21h
     pop ax
     push ax
and al,00001111b
mov ah,0
mov si,ax
mov dl,[si+hex]
mov ah,6
int 21h
mov ah,6 ;вывод 'h'
mov dl,'h'
int 21h

mov ah,6
mov dl,' ' ; выводим пробел между данными
int 21h
     pop ax
     push ax
shr ah,4
mov al,ah
mov ah,0
mov si,ax
mov dl,[si+hex]
mov ah,6
int 21h
     pop ax
mov al,ah
mov ah,0
and al,00001111b
mov si,ax
mov dl,[si+hex]
mov ah,6
int 21h

mov ah,6
mov dl,'h'
int 21h
mov ah,9
mov dx,offset txt
int 21h
jmp nachalo

konec: ; выход из программы
mov ah,4ch
int 21h
cseg ends 
end start
Еще прожка не реагирует на Shift, Alt, CapsLock, Pause, Print Screen - тоисть для этих клавиш нет скан-кода или как ?

Последний раз редактировалось Alex1991; 07.11.2010 в 15:52.
Alex1991 вне форума Ответить с цитированием
Старый 07.11.2010, 15:31   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,216
По умолчанию

http://www.codenet.ru/progr/dos/int_0015.php
Arigato вне форума Ответить с цитированием
Старый 07.11.2010, 17:01   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

вот, поиграйтесь с программкой, может более понятно станет, как там всё "функцилирует" внутри...
Цитата:
Маленькие программки KN

Copyright (C) Nikita E.Korzun (KN) VANTALA Ltd.

KNKBDI
Вытаскивает из клавиатуры все, что только можно. Очень наглядно.
Вложения
Тип файла: rar KN.rar (4.7 Кб, 35 просмотров)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.11.2010, 20:04   #4
Alex1991
Форумчанин
 
Аватар для Alex1991
 
Регистрация: 18.10.2008
Сообщений: 166
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
вот, поиграйтесь с программкой, может более понятно станет, как там всё "функцилирует" внутри...
благодарю
Alex1991 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разобраться в программе fredwriter Помощь студентам 6 10.10.2010 10:47
Назначение строки кода в программе ArniLand Общие вопросы .NET 1 30.03.2010 16:31
Не разберу скан кода по встраиваемым функциям fs444 Общие вопросы C/C++ 3 22.03.2010 22:06
Считывание скан кода IgorKr Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 25.02.2009 00:47
Чем отличается скан-код от виртуального кода клавиши? The_Darkness Помощь студентам 2 18.07.2008 17:01