Написать программу на языке ассемблера, которая обрабатывает нажатия клавиш на клавиатуре - Assembler

Узнай цену своей работы

Формулировка задачи:

Народ, пожалуйста помогите. Написать программу на языке ассемблера, которая обрабатывает нажатия клавиш на клавиатуре и выдаёт на экран следующую ин-формацию: 1) ASCII-код символа, если была нажата алфавитно-цифровая клавиша основной клавиатуры. 2) Строку «Расширенный код», если была нажата функциональная клавиша, клавиши дополнительной клавиатуры или комбинации клавиш с «ALT» и «CTRL». Программа должна предварительно чистить буфер клавиатуры. Информация о каждом нажатии должна выводиться в новой строке (предыдущие сведения не затираются). Символы должны вводиться без эха. Программа должна завершиться по нажатию клавиши «ESC». Сам не понимаю ассемблер. Поэтому рассчитываю на вашу помощь. Буду рад любой помощи! Заранее благодарен.

Решение задачи: «Написать программу на языке ассемблера, которая обрабатывает нажатия клавиш на клавиатуре»

textual
Листинг программы
xor ax,ax
int 16h ;getch();
or al,al ;if( (key == 0) || (key == 0xe0) )
jnz NormalKey
cmp al, 0E0h
jnz NormalKey

Объяснение кода листинга программы

  1. xor ax,ax - инициализация регистра ax нулевым значением;
  2. int 16h - обращение к сервисной процедуре BIOS, которая обрабатывает нажатие клавиш на клавиатуре и возвращает код нажатой клавиши в регистре al;
  3. or al,al - установка флага, который будет использоваться для проверки нажатой клавиши;
  4. jnz NormalKey - переход к метке NormalKey, если флаг не равен нулю;
  5. cmp al, 0E0h - сравнение кода нажатой клавиши с кодом клавиши E0, который соответствует нажатию клавиши Ctrl;
  6. jnz NormalKey - переход к метке NormalKey, если код нажатой клавиши не равен E0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы