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

Работа с буфером клавиатуры (посимвольное очистка консоли)

18.11.2018, 12:20. Показов 1019. Ответов 0
Метки fasm (Все метки)

Студворк — интернет-сервис помощи студентам
Программа выводит нажатые клавиши в консоль. Нажимая кнопку backspace символ "удаляется" из консоли.

1)Проблема в том что не "удаляется" последний символ.

2)Удаляя первый символ указатель стрелочка прыгает в непонятную сторону.Как от этого избавиться ?
Это происходит потому что я делаю sub si,2 в самом начале процедуры del, поэтому и возникает этот баг,но я не знаю как реализовать удаление по другому.
Подскажите как исправить эти два бага.

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
org 100h
 mov ah,0
 mov al,3
 int 10h
 
 start:
 mov ax,0b800h
 mov es,ax
 mov ax,0040h
 mov fs,ax
 mov si,0
 mov di,[fs:1Ch]
 
 mov cx,16
 main:
 mov ah,00h
 int 16h
 cmp al,1Bh
 je quite_program
 cmp al,08h
 je del
 call clear_draw
 call draw
 mov ah,07h
 mov [es:si],ax
 l:add si,2
 
 loop main
 mov ax,1eh
 mov [fs:1Ah],ax
 mov [fs:1Ch],ax
 jmp start
 
;-----------------------------------------------
 del: 
 sub si,2
 mov ax,00h
 mov [es:si],ax
 sub si,2
 push si
 mov word [es:si+160],0318h
 mov  word [es:si+162], 0
 pop si
 add cx,2
 jmp l
 
;-----------------------------------------------
 draw:
 push si
 push ax
 add si,160
 mov ax,0318h
 mov [es:si],ax
 mov ax,00h
 sub si,2
 mov [es:si],ax
 pop ax
 pop si
 ret
 
;---------------------------------------------------------
 clear_draw:
 push si
 push ax
 mov si,190
 mov ax,00h
 mov [es:si],ax
 pop ax
 pop si
 ret
 
;---------------------------------------------------------
 quite_program:
 mov ah,4ch
 int 21h
 ret
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2018, 12:20
Ответы с готовыми решениями:

Работа с кольцевым буфером клавиатуры
Помогите пожалуйста,дорогие программисты.Почему прога не работает? Задание следующее: Написати програму яка, використовуючи функції...

Очистка консоли, очистка строки, установка курсора
Здравствуйте! Подскажите как можно после очистки консоли поставить курсор в самый вверх, чтоб то что вывожу было в верху консоли а...

Реализовать посимвольное считывание из консоли больших текстов
Как реализовать посимвольное считывание из консоли, чтоб работало с большими текстами. С небольшой строкой у нас считвывает нормально, а с...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.11.2018, 12:20
Помогаю со студенческими работами здесь

Очистка консоли!
import java.util.Scanner; public class Experiment { public static void main(String args) { Scanner in = new...

Очистка консоли
Здравствуйте подскажите пожалуйста как мне на с++ (каким способом) можно в процессе исполнения программы очистить все записи в консоле ??

Очистка консоли
Простите за нубские вопросы, но как очистить консоль в программе ruby?

Очистка консоли
Есть ли в java команда, написав которую, все , что было написано до этой функции в консоле, сотрется? Добавлено через 1 минуту ...

Очистка консоли
Всем здравствуйте. Начал изучать JAVA в консоль пишу/читаю без проблем. Решил очистить консоль чтоб было все красиво и не смогу найти...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru