![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 22.01.2010
Сообщений: 11
|
![]()
; провеярем чтобы число было из диапозона от 0 до 9
cmp al, 30h jb pos cmp al, 39h ja pos xlat mov a[si], al inc di ; запоминаем колличество разрядов числа inc si jmp pos В данном фрагменте программы алгоритм проверяет что бы вводимое с клавиатуры число было из диапозона от 0 до 9. Если оно не соответствует этому условию возвращаемся на новый ввод. Это самое "неправельное" число никуда при этом не записывается но появляется на экране. Как сдалать так что бы оно не появлялось на экране , а просто шел нового числа ввод ? |
![]() |
![]() |
![]() |
#2 | |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
Billy Spleen
По приведенному фрагменту видно, что идет проверка на диапазон 0-9 а где происходит вывод осталось "за кадром" поэтому как можно советовать чтобы Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 22.01.2010
Сообщений: 11
|
![]()
Поясню. Незнаю поймет кто нибудь или нет что хотел сказать.
При вызове функции Dos по вводу чисел с клавиатуры открывается консоль или диалоговое окно (незнаю как правельно его назвать) где отображаются вводимые с клавиатуры символы. Так вот, если символ из нужного диапозона то он записывается по адрусу a[si], а есле нет то просто висит в al и перезаписывается слудующим символом. Проблема в том что все что вводишь с клавиатуры отображается в этой окне. Мне надо что бы символы которые не из диапозона 0-9 не отображались в этом окне. |
![]() |
![]() |
![]() |
#4 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]() Код:
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 22.01.2010
Сообщений: 11
|
![]()
Спасибо большое, работает, но не у меня (в моей программе конечно) ))). У меня почему то не хочет вводить числа вообще))). Может потому что у меня TASM?
Последний раз редактировалось Billy Spleen; 25.01.2010 в 12:47. |
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
Billy Spleen
Для ввода строки символов с клавиатуры без вывода ее на экран (например, для ввода пароля) применяется функция 3Fh прерывания 21h. На адрес памяти куда будет помещена строка указывают регистры DS:DX. Поместите в регистр BX ноль, в регистр CX — максимальное число символов и вызывайте прерывание 21h Код:
|
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
Billy Spleen
Для скрытого вывода можно изменить цвет символов, чтобы он был равен цвету BackGround'а |
![]() |
![]() |
![]() |
#10 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
Billy Spleen
Способ второй: Код:
то на экран ничего выдано не будет, а в текущем каталоге появится файл hello-1.out, содержащий строку «Hello World!» Способ четвертый: установить курсор за пределы экрана и тогда при вводе строки ничего не будет видно Код:
Последний раз редактировалось Mikl___; 25.01.2010 в 12:42. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
СИ, вывод массива символов | ray13 | Помощь студентам | 7 | 16.09.2020 07:49 |
Удаление лишних символов из Memo | NSV | Общие вопросы Delphi | 10 | 23.11.2012 08:38 |
Как без лишних функций записать файл в string? | TwiX | Общие вопросы Delphi | 10 | 24.08.2009 12:16 |
Удаление лишних пробелов. Ввод/вывод в файл. | Иван 883 | Помощь студентам | 13 | 31.03.2009 19:39 |
Вывод символов в строке | Karl_Karlovi4 | БД в Delphi | 12 | 03.06.2008 13:31 |