Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 29

Перенос курсора на следующую строчку с удалением из неё символов

02.10.2016, 14:36. Показов 1020. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Смысл таков:
Если введено 10 символов, то курсор переходит на следующую строчку. Курсор переносится, но строка всё равно имеет уже введенных 10 символов, а мне надо каждую последующую строчку очищать. Пробовал через int 10h, но мне надо удалить символы в строке, а не весь экран сдвинуть. Подскажите как решить эту ерунду.

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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
codesg segment para 'code'
 
assume cs : codesg, ds : codesg, es : codesg, ss : codesg
 
org 100h
 
begin: jmp main
 
; –––––––– процедура обработки прерывания –––––––––––––––––––
s1 db 'Programma uje v mmory',10,13,'$'
stroka db ?
Kol db ?
rezident proc far
 
push ds di es ax bx cx dx ; сохраняем регистры в стеке
; #######################################
 
;mov ah,02h
;mov bh,0
;mov dh,12
;mov dl,40
;int 10h
 
;int 60h ; вызываем оригинальный обработчик
 
mov ah,03h
mov bh,0
int 10h
 
mov  cs:stroka, dh
mov cs:kol, dl
cmp cs:kol, 10
jne @end
 
 
;10 kolonka
 
mov ah,06h
mov ch,0
mov cl,0
mov dh,24
mov dl,79
mov al,1 
mov bh,0fh
int 10h
 
 
 
mov ah,02h
mov bh,0
;add cs:stroka,1
mov dh,cs:stroka
mov dl, 0
int 10h
@end:
 
int 60h
pop dx cx bx ax es di ds ; восстанавливаем все регистры
iret ; возврат из обработчика прерывания
finish EQU $ ; адрес первого байта за резидентной частью
rezident endp
 
; –––––––– конец процедуры обработки прерывания ––––––––––––––
 
 
 
;––––––––– инициализирующая часть ––––––––––––––––––––––––––
 
main proc near
 
; ––– 1) получаем вектор прерывания номер 9 в регистры es:bx –––––
mov ah,35h ; номер функции получения вектора
mov al,60h ; номер вектора
int 21h ; вызвать прерывание
 
cmp bx,0 
je @m1
; uje v memory
 
mov ah,09h
lea dx, s1
int 21h
 
mov ah,08
int 21h
 
ret
 
@m1: mov ah,35h
mov al,09h
int 21h
 
 
; –––– 2) переписываем полученный вектор в 60-ый вектор (пустой) ––––
 
cli ; запрещаем аппаратные прерывания
push ds ; сохраняем в стеке ds нашей программы
mov dx,bx ; переписываем bx в dx
mov ax,es ; переписываем es в ds
mov ds,ax ; через регистр ax
mov ah,25h ; номер функции установки вектора
mov al,60h ; номер вектора, куда пишем
int 21h ; вызвать прерывание
pop ds ; восстанавливаем из стека ds нашей программы
sti ; разрешаем аппаратные прерывания
 
; – 3) записываем адрес нашей процедуры обработки в вектор номер 9 –
 
lea dx,rezident ; загрузка в DS:DX адреса резидентной процедуры
mov ah,25h ; функция установки вектора
mov al,09h ; номер вектора, куда пишем
int 21h ; вызвать прерывание
 
; –– 4) прерываем программу и оставляем резидентную часть в памяти ––
 
lea dx, finish ; в dx номер первого байта за резидентной частью
 
int 27h ; вызвать прерывание
ret
main endp
codesg ends
end begin
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.10.2016, 14:36
Ответы с готовыми решениями:

Перенос на следующую строчку.
В общем у меня есть таблица в строку вмещается 35 символов, можно использовать только 2 строки(т.е. 35 символов перенос на следующую строку...

Отменить перенос указанного текста на следующую строчку
Как можно сделать, чтоб текст «name-file.txt» не переносился. Т.е. чтобы вместо: Переносилась таким образом

Перенос на следующую строку по shift + enter. Считать положение курсора
Здравствуйте. Есть некое текстовое поле. При нажатии на enter мы выполняем некий метод. На shift + entrer мы должны перенести текст на...

1
780 / 412 / 75
Регистрация: 29.03.2013
Сообщений: 853
03.10.2016, 09:49
Цитата Сообщение от Михаил Пин Посмотреть сообщение
мне надо удалить символы в строке, а не весь экран сдвинуть. Подскажите как решить эту ерунду.
Во всю строку, которую надо стереть, выводишь пробелы, затем возвращаешь курсор на исходную позицию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.10.2016, 09:49
Помогаю со студенческими работами здесь

Автоматический перенос на следующую строку в Textarea при достижении 30 символов
Всем привет, имеется текстовая область textarea, в нее вводиться текст, как можно сделать так, чтобы когда введено 30 символов,...

Авто перенос курсора в Richedit при достижении длины строки определенного числа символов.
Вопрос - как в RichEdit эмулировать нажатие клавиши enter или просто осуществить перенос каретки при достижении длины строки 18 символов?

Перейти на следующую строчку в блокноте
Есть программа, которая записывает данные с Паскаль в блокнот, но когда мне надо оно не переходит на следующую строчку, writeln и readln не...

Как перенести предложение на следующую строчку?
Сам код: Выводит: Сегодня 13-03-2015Сегодня 13 число, March месяц, 2015 год. А мне надо, чтобы было вот так: Сегодня 13-03-2015...

Перейти на следующую строчку массива баззы данных
Чтобы перейти на след. строчку массива, нам нужно опять дать значение переменной. То есть второй раз вызвать функцию mysql_fetch_array или...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
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