1 / 1 / 2
Регистрация: 13.09.2015
Сообщений: 105
1

Работа с функциями BIOS драйвера клавиатуры с использованием прерывания 16H

11.10.2017, 13:39. Показов 1685. Ответов 5
Метки нет (Все метки)

Всем доброго времени суток!
Помогите пожалуйста написать программу на языке С++ с использованием Ассемблера!
Проблема в том что я не понимаю Ассемблер! Помогите пожалуйста заранее спасибо!

Задание:Вводимые с клавиатуры символы выводить на экран монитора в следующем порядке:
справа налево снизу вверх.

Пример кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <conio.h>
void main()
{
    char ch;
    clrscr (); // очистка экрана
    cout << "Нажмите клавишу..." << endl;
    while (ch != 0x1B)
    {
        asm {
            mov ah,00h
                    int 16h
                    mov ch,al
        }
    }
    cout << "Завершение работы программы..." << endl;
    getch();
}
Дополнительные специальные функции для выполнения работы:
Кликните здесь для просмотра всего текста
1) Переместить курсор.
void gotoxy(int x, int y)
Заголовочный файл: conio.h
Функция помещает курсор текстового экрана в точку с координатами х,у. Если хотя бы одна
из координат недействительна, то никаких действий не выполняется.
Следующая программа выводит символы X по диагонали экрана:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <conio.h>
int main(void)
{
    register int i, j;
    clrscr();
    /* вывод диагонали из Х-ов */
    for(i=1,j=1;j<24;i+=3,j++)
    {
        gotoxy(i,j);
        cprintf("X");
    }
    getchar();
    clrscr();
    return 0;
}
2) Работа со временем.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream.h>
#include <time.h>
int main ()
{
    time_t seconds = time(NULL);
    // читает текущее время
    // разбивает значение текущего времени на часы, минуты, секунды и т.д.
    tm* timeinfo = localtime(&seconds);
    // asctime переводит структуру времени в строку формата Www Mmm dd hh:mm:ss yyyy
    cout<<"Current Datetime:" << asctime(timeinfo) <<endl;
    cin.get(); // ожидаем нажатия enter
    return 0;
}
3) Работа с состоянием клавиатуры.
int keystate; // переменная размером 2 байта в Dos
xor ax, ax
// очистка регистра ax
mov es, ax
// обнуляем es – это будет значение смещения
// считываем данные типа word (2 байта) с адреса (0x0000 + 0x0417)
mov keystate, word ptr es:[417h]

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2017, 13:39
Ответы с готовыми решениями:

Работа с функциями BIOS драйвера клавиатуры с использованием прерывания 16H - С++
Доброго времени суток. Помогите пожалуйста написать программу на языке С++ с использованием...

Обслуживание клавиатуры с использованием прерывания BIOS 16Н
Помогите пожалуйста! Вводимые с клавиатуры символы выводить на экран монитора в следующем...

Обслуживание дисплея с использованием прерывания BIOS 10Н
Выводить прямоугольник 5*10 точек в случайную позицию на экране. Каждый раз окрашивать...

Изменение цвета символа с использованием системного прерывания BIOS
Всем доброго времени суток помогите пожалуйста дописать программу! Мое задание звучит так вывести...

5
Заклинатель змей
611 / 508 / 213
Регистрация: 30.04.2016
Сообщений: 2,412
11.10.2017, 13:43 2
razor6217,

Не по теме:

попросите преподавателя выйти из 80-х и перестать использовать conio

0
1 / 1 / 2
Регистрация: 13.09.2015
Сообщений: 105
11.10.2017, 14:20  [ТС] 3
Пробовали, но они не хотят переходить на новые стандарты Говорят вам это не пригодится,но всё же...
0
nmcf
09.11.2017, 14:34
  #4

Не по теме:

Цитата Сообщение от razor6217 Посмотреть сообщение
вам это не пригодится,но всё же
Сами признают, что это хрень, но продолжают?

0
1 / 1 / 2
Регистрация: 13.09.2015
Сообщений: 105
09.11.2017, 14:35  [ТС] 5
именно)
0
2 / 2 / 0
Регистрация: 20.10.2019
Сообщений: 58
28.11.2021, 21:09 6
2021 год, продолжают давать то же самое. Но под предлогом, что это вам пригодится.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2021, 21:09
Помогаю со студенческими работами здесь

Изменение цвета символа с использованием системного прерывания BIOS!
Всем доброго времени суток помогите пожалуйста дописать программу! Мое задание звучит так вывести...

Модификация функции 00h прерывания int 16h
Можно ли перехватом прерывания 16h изменить значения, возвращаемые функцией 00h ?

BIOS Int 16h
Огромная просьба ко всем форумчанам подсказать дилетанту почему код не выполняется так как должен...

Прерывание int 16h, ввод с клавиатуры
Доброго всем времени суток. У меня есть задача, в которой мне нужно воспользоваться вводом с...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru