19.04.2019, 22:17 [+3 UTC]
в нашей команде: 3 551 чел. | участники онлайн: 6 (рекорд: 21)

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

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

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.74 (12.04.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
09.03.2019, 10:08

Форум:
19.04.2019, 18:58

Последний вопрос:
19.04.2019, 18:03
Всего: 149309

Последний ответ:
19.04.2019, 21:38
Всего: 258211

Последняя рассылка:
19.04.2019, 17:45

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

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

Наша кнопка:

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

Отзывы о нас:
12.10.2009, 11:26 »
[аноним]
Почтение и Уважение создателям этого сайта! Обзавелся новыми знаниями, здесь мне помогли решить много задач.
31.05.2010, 22:28 »
verona
Большое спасибо за быстрый и качественный ответ! [вопрос № 178789, ответ № 261779]
31.05.2016, 11:57 »
malich.e
Спасибо ! Дана исчерпывающая информация. Благодарю за помощь . [вопрос № 189520, ответ № 273899]

РАЗДЕЛ • Assembler

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

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

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

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 502
Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 342
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 154

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

Консультация онлайн # 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

Последнее редактирование 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.24821 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.74 от 12.04.2019
Версия JS: 1.33 | Версия CSS: 3.35