19.09.2018, 09:09 [+3 UTC]
в нашей команде: 2 971 чел. | участники онлайн: 3 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.50 (13.09.2018)

Общие новости:
13.04.2018, 10:33

Форум:
18.09.2018, 08:51

Последний вопрос:
18.09.2018, 15:34

Последний ответ:
19.09.2018, 08:03

Последняя рассылка:
18.09.2018, 17:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
22.10.2009, 21:33 »
Яна
Спасибо большое за оперативность! [вопрос № 173576, ответ № 255725]
05.10.2009, 21:07 »
Andris
Ответ был полный и понятный. А главное - все получилось. [вопрос № 172881, ответ № 254982]
29.11.2011, 05:32 »
Alexvegas
Спасибо большое! В очередной раз убеждаюсь в полезности вашего сайта с такими специалистами как вы! Всего вам доброго! [вопрос № 184607, ответ № 268963]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Модератор
Рейтинг: 179
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 94
Kdsfofwe21
Статус: 1-й класс
Рейтинг: 51

Перейти к консультации №:
 

Консультация онлайн # 193478
Раздел: • Assembler
Автор вопроса: Роман (Посетитель)
Отправлена: 21.08.2018, 15:54
Поступило ответов: 1

Здравствуйте, уважаемые эксперты! Я написал программу, выводящую введенные символы в консоль (ассемблируя с помощью MASM 6.11). Пытаясь добавить в программу поддержку Enter, я наткнулся на проблему: если первый ввод Enter работает нормально, то после второго нажатия дальнейший ввод идет некорректно. На скриншоте изображено состояние консоли после ввода "qwert-Enter-asdfg-Enter-zxcvb".
Просьба помочь решить проблему. Спасибо.

Программа:

Код (Assembler) :: выделить код
CSEG segment 
org 100h 

start: 

mov ax,3
int 10h

mov ax,0B800h 
mov es,ax 
mov di,0
mov cx,25 

again:

push cx
mov cx,80

again2:

mov ah,10h
int 16h
mov ah,07h
cmp al,0Dh
jz enter_yes
mov es:[di],ax
add di,2
jmp not_enter

enter_yes:
add di,cx
add di,cx
mov cx,0

not_enter:

loop again2

pop cx

loop again

int 20h 

CSEG ends 
end start

тэг CODE
--------

• Отредактировал: Лысков Игорь Витальевич (Старший модератор)
• Дата редактирования: 21.08.2018, 16:20

-----
 Прикрепленный файл (кликните по картинке для увеличения):

Состояние: Консультация закрыта

Ответ # 276650 от Лысков Игорь Витальевич (Старший модератор)

Здравствуйте, Роман!
Сравните со следующим кодом...
Добавил выход по ESC
Не мешало бы добавить управление курсором smile

Код (Assembler) :: выделить код
CSEG segment 
	org	100h 
 
start: 
	mov	ax, 3 
	int	10h
 
	mov	ax, 0B800h 
	mov	es, ax 
	mov	di, 0 
	mov	cx, 25 
 
again:
	push	di
	push	cx 

	mov	cx, 80 

again2:
	mov	ah, 10h
	int	16h

	cmp	al, 1bh
	je	exit

	mov	ah, 07h
	cmp	al, 0Dh
	jz	enter_yes

	mov	es:[di], ax 
	add	di, 2 
	loop	again2
 
enter_yes:
	pop	cx
	pop	di
	add	di, 80*2 
	loop 	again
exit:
	int 20h 

CSEG	ends 
	end	start


Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 21.08.2018, 16:46

5
нет комментария
-----
Дата оценки: 21.08.2018, 20:42

Рейтинг ответа:

+1

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

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

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14398 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.50 от 13.09.2018