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

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

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

Author24 — интернет-сервис помощи студентам
Итак,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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2008, 22:03
Ответы с готовыми решениями:

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

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

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

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

0
07.10.2008, 22:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2008, 22:03
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru