Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 18
1

Получать scan и ascii коды нажатой клавиши, masm

02.06.2013, 15:57. Показов 3020. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть лабораторная робота, последняя слава богу. Все предыдущие делал сам, с этой справится не могу.
Суть вот в чем:
При нажатии клавиши мы должны получать код клавиши (ascii и scan) в 16- и 2-ой системах исчисления.
На ТАСМ"е примеров и решений в интернете много, на MASM'e толком ничего не увидел...
Буду рад литературе, статьям, кусакам кода или чего либо, что б помогло мне в решении проблемы...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2013, 15:57
Ответы с готовыми решениями:

Вывод scan кода и ascii кода нажатой клавиши
Подскажите пожалуйста, как реализовать вывод scan кода и ascii кода нажатой клавиши в ассемблерной...

прога, которая по нажатой клавише выводит ascii - код символа это клавиши или scan - код самой клавиши.
написать программу, которая по нажатой клавише выводит ascii - код символа этой клавиши или scan -...

Получить коды нажатой клавиши и вывести в Label
Здравствуйте, такой вопрос: 1.как получить коды(Unicode и ASCII) нажатой клавиши(вывести их...

Текст(или ASCII код) нажатой клавиши
public void Change(KeyboardState keyboardState) { Keys k =...

12
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
02.06.2013, 16:03 2
Дык, Ральфа читайте... http://www.ctyme.com/intr/rb-1754.htm
Талбичка сканкодов http://www.ctyme.com/intr/rb-0045.htm
1
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 18
02.06.2013, 16:15  [ТС] 3
Очень благодарен, а можете навести маленький пример кода ?
я знаю что это можно сделать с помощью int 16h, но я же не могу ограничится одной командой... Если вас не затрудник конечно!
0
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
02.06.2013, 16:28 4
Цитата Сообщение от apelseene Посмотреть сообщение
Если вас не затрудник конечно!
Не затруднит. Писано Михаилом Таловым в 1992. Только это совсем не МАСМ.
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
89
90
91
92
93
94
95
96
97
98
        jmp     work
Old_i15 dw      0,0
Str_    db  0h,0h
pushall proc    near
    jmp pushwrk
Save    dw  0, 0
pushwrk:
    pop [Save]
    pop [Save +2]
    push    ax
    push    bx
    push    cx
    push    dx
    push    ds
    push    es
    push    si
    push    di
    push    bp
    push    [Save +2]
    push    [Save]
    ret
pushall endp
 
popall  proc    near
    jmp popwrk
Rest    dw  0, 0
popwrk:
    pop [Rest]
    pop [Rest +2]
    pop bp
    pop di
    pop si
    pop es
    pop ds
    pop dx
    pop cx
    pop bx
    pop ax
    push    [Rest +2]
    push    [Rest]
    ret
popall  endp
 
get proc    near
    mov ah, al
    mov cl, 4
    shr ah, cl
    and al, 0Fh
 
    add ah, 30h
    cmp ah, 3Ah
    jl  prd_1
    add ah, 7h
prd_1:  mov cs:[Str_], ah
    add al, 30h
    cmp al, 3Ah
    jl  prd_2
    add al, 7h
prd_2:  mov cs:[Str_ +1], al
    ret
get endp
 
write   proc    near
    mov ah, 0fh
    int 10h
    push    cs
    pop es
    lea bp, cs:Str_
    mov cx, 2
    mov dx, 0000h
    mov bl, 70h
    mov ax, 1300h
    int 10h
        ret
write   endp
 
New_i15:
    cmp ah, 4Fh
    jne End_i15
    call    pushall
    call    get
    call    write
    call    popall
End_i15:
        jmp     [dword ptr cs:Old_i15]
 
work:
        push    cs
        pop     ds
        mov     ax, 3515h
        int     21h
        mov     [Old_i15], bx
        mov     [Old_i15 +2], es
        lea     dx, New_i15
        mov     ax, 2515h
        int     21h
        lea     dx, work
        int     27h
1
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 18
02.06.2013, 21:53  [ТС] 5
Charles Kludge, суть в том, что на масме обязательно =(
на тасме в интернете примеров очень много, но на масм ничего не нашел толком =(
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
03.06.2013, 03:25 6
apelseene,
а попробуй откомпилировать masm'ом и удивись результату -- тасм и масм совместимы
0
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 18
03.06.2013, 08:47  [ТС] 7
Mikl___, компилировал, не получилось... на int 21h зависает окно консоли... или может есть какой компилятор кроме masm32, который может спокойно скомпилить ?
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
03.06.2013, 09:14 8
apelseene,
а не смущает, что пакет masm32 предназначен для создания Windows программ: GUI, CONSOLE, DLL, SYS, а int 21h применяется в DOS-программах? Да и бат-файл для компиляции DOS-программ несколько иной...
0
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 18
03.06.2013, 09:43  [ТС] 9
Цитата Сообщение от Mikl___ Посмотреть сообщение
apelseene,
а попробуй откомпилировать masm'ом и удивись результату -- тасм и масм совместимы

Цитата Сообщение от Mikl___ Посмотреть сообщение
apelseene,
а не смущает, что пакет masm32 предназначен для создания Windows программ: GUI, CONSOLE, DLL, SYS, а int 21h применяется в DOS-программах? Да и бат-файл для компиляции DOS-программ несколько иной...
связи между этими двумя постами не вижу О_о
я же говорю, что DOS-программа не будет компилится на masm32... именно изза int 21h...
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
03.06.2013, 10:24 10
apelseene,
извини, а как же я компилирую ДОС программы в masm32 и не знаю об этом? и зачем в папке bin находится link16?
создаю бат-файл самостоятельно
Код
%masm_path%\bin\ml /c %filename%.asm
%masm_path%\bin\link16 %filename%.obj,,,,,
и получаю DOS-EXE-файлы и подтверждаю еще раз -- тасм и масм программно совместимы
0
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 18
03.06.2013, 10:54  [ТС] 11
Цитата Сообщение от Mikl___ Посмотреть сообщение
apelseene,
извини, а как же я компилирую ДОС программы в masm32 и не знаю об этом? и зачем в папке bin находится link16?
создаю бат-файл самостоятельно
Код
%masm_path%\bin\ml /c %filename%.asm
%masm_path%\bin\link16 %filename%.obj,,,,,
и получаю DOS-EXE-файлы и подтверждаю еще раз -- тасм и масм программно совместимы
а вот за это спасибо огромнейшее... =)
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
03.06.2013, 11:00 12
apelseene,
я думаю, что вот эта ссылка пригодится еще больше Как автоматизировать сборку ассемблерных программ
0
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 18
03.06.2013, 14:04  [ТС] 13
Mikl___, еще большее спасибо =)
0
03.06.2013, 14:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2013, 14:04
Помогаю со студенческими работами здесь

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

Вывести позиц Коды символа нажатой клавиши, если не было взаимодействия с мышью, а если было - то не выводить
Вторая: вывести позиц. Коды символа нажатой клавиши, если не было взаимодействия с мышью, а если...

Ввести коды ASCII N символов. Выбрать из них и вывести только коды цифр
Нужна помощь с заданием: Ввести коды ASCII N символов. Выбрать из них и вывести только коды цифр. ...

Вывод ascii и scan кодов
Всем привет. Надо занести в буфер клавиатуры вместо цифр их скан коды, а вместо букв их ascii код....


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

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