22.01.2019, 12:34 [+3 UTC]
в нашей команде: 3 344 чел. | участники онлайн: 5 (рекорд: 20)

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

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

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

:: правила

:: новости

:: участники

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

:: форум

:: блоги

:: поиск

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

:: наш журнал

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

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

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

:: поддержка

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

Версия системы:
7.65 (20.01.2019)
JS-v.1.31 | CSS-v.3.35

Общие новости:
01.01.2019, 13:54

Форум:
14.01.2019, 10:08

Последний вопрос:
21.01.2019, 23:17
Всего: 148545

Последний ответ:
22.01.2019, 12:04
Всего: 257629

Последняя рассылка:
22.01.2019, 11:45

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

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

Наша кнопка:

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

Отзывы о нас:
24.04.2014, 09:13 »
Пупкин Василий Эдуардович)
Зачет) [вопрос № 187810, ответ № 272732]
06.03.2010, 00:29 »
Даниил Цветков
Содержательный и полный ответ. Спасибо большое [вопрос № 177048, ответ № 259911]

РАЗДЕЛ • Assembler

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

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

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

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 630
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 403
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 279

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

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

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