Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
StudentBTI

Вывести аски и скан коды клавиш...

07.10.2008, 22:03. Показов 8041. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Итак,Assembler i8086/88
Задание:Написать программу,которая выводит аски и скан -коды
нажатой клавиши в 16-й системе.
Т.е. прога пишет: Нажмите любую клавишу
При нажатии,например,А,выводит:
A 41H 1EH
и т.д. ,ESC-выход
Вот даже есть начало,только выводит немного не то,
что тут можно поправить?...
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
sseg segment stack
db 128 dup(?) 
sseg ends
 
dseg segment 
msg1 db 'Najmite klavishu',10,13,'$'
hex db '0123456789abcdefghijklmnopqrstuvwxyz',10,13,'$'
dseg ends
 
cseg segment
assume ss:sseg,ds:dseg,cs:cseg
start:
mov AX,dseg 
mov DS,AX
mov AH,9
mov DX,offset msg1
int 21h
 
mov AH,0
int 22
push AX
mov AH,6 
mov DL,AL
int 21h
 
mov AH,6
mov DL,' '
int 21h
 
shr AL,4
mov AH,0
mov SI,AX
 
mov AH,6
mov DL,[SI+hex]
int 21h
pop AX
push AX
shl AL,4
shr AL,4
mov AH,0
mov SI,AX
 
mov AH,6
mov DL,[SI+hex]
int 21h
pop AX
push AX
mov AH,6
mov DL,'h'
int 21h
 
mov AH,6
mov DL,' '
int 21h
 
mov AL,AH
shr AL,4
mov AH,0
mov SI,AX
 
mov AH,6
mov DL,[SI+hex]
int 21h
pop AX
push AX
shl AL,4
shr AL,4
mov AH,0
mov SI,AX
 
mov AH,6
mov DL,[SI+hex]
int 21h
pop AX
mov AH,6
mov DL,'h'
int 21h
 
mov AH,6
mov DL,' '
int 21h
 
mov AH,4Ch
int 21h
cseg ends
end start
Добавлено через 10 часов 38 минут 9 секунд
Вот другой немного вариант- всё работает,
одна просьба-пояснить что какой блок выполняет...
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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
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
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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.10.2008, 22:03
Ответы с готовыми решениями:

Скан-коды нажатых клавиш записать в файл
всем здравствуйте, пишу программу на тасм. условие такое нужно скан коды нажатых клавиш записать в файл, подскажите как сделать, скан коды...

МПС - определить скан-коды клавиш К11, К12, К14, К18 матричной клавиатуры 8х8
Как определить скан-коды клавиш К11, К12, К14, К18 матричной клавиатуры 8х8.

Аски код клавиш
Нужна программа определяющая аски код нажатой клавиши. Так же нужно выводить на экран происходящие операции

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.10.2008, 22:03
Помогаю со студенческими работами здесь

скан-коды клавиатуры
Как определить скан-код нажатой клавиши? private void Form1_KeyPress(object sender, KeyPressEventArgs e) { //определяем...

Считать коды клавиш и вывести на экран информацию о нажатой клавише
Всем привет! Вот решил с винды перебраться на линукс, начал кодить в нём на Си++. Но столкнулся с проблемойююю Мне надо написать...

Как поменять\перепрошить скан-коды на клавиатуре?
Подскажите, чем это можно сделать. Предположу, что через юсб это вряд ли можно сделать, т.к. клава только возвращает значения, но не...

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

Скан-код по названию клавиш
Функция GetKeyNameText позволяет получить названия клавиш по их скан-кодам. А как обратно получить скан-код по названию?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru