|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.11.2010, 23:32 | #1 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 15
|
Ввод и сравнение строк
Доброго времени суток. Недавно начал писать программу на ассемблере, используя Masm, и столкнулся с проблемой сравнения строк.
Суть вот в чём: с клавиатуры вводится команда, затем программа проверяет, есть ли в ней такая команда и выполняет её (если есть), в противном случае, выводит сообщение об ошибке и ожидает ввода следующей команды. Проблема началась с того, когда я начал сравнивать введённую строку и уже имеющуюся в сегменте данных строку с командой. Программа всё время пишет, что команда не найдена. Прошу Вашей помощи. Подскажите как можно сравнить введенную с клавиатуры строку с уже имеющейся и при этом, выполнить действия связанные с этой командой? Заранее благодарен. |
02.11.2010, 00:09 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
repe cmpsb?)
или АПИ CompareString. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
02.11.2010, 00:21 | #3 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 15
|
Код:
Последний раз редактировалось Stilet; 14.11.2010 в 16:42. |
02.11.2010, 00:58 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а где далее условие?(je)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
02.11.2010, 14:22 | #5 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 15
|
Условие есть в программе. Но суть в том, что строки buffer и Com_Time не получаются равными.
Код:
Последний раз редактировалось Stilet; 14.11.2010 в 16:42. |
02.11.2010, 19:57 | #6 |
Python,C++,ASM,Php
Пользователь
Регистрация: 29.08.2010
Сообщений: 58
|
Это было реализовано, и весьма неплохо в GlukOS на TASM.
Исходники GlukOS Хакер - это не ламер с завышенным самомнением, а программист с заниженной зарплатой.
Нелегка и неказиста жизнь простого программиста. |
07.11.2010, 08:51 | #7 | |
Форумчанин
Регистрация: 04.06.2010
Сообщений: 212
|
Цитата:
Как в буфере различаются команды между собой (0, пробел, или без раз делений) И каков размер буфера всех команд? Попробую написать код.
мой сайт http://wanes101.16mb.com/myblog
Последний раз редактировалось wanes101; 07.11.2010 в 08:54. |
|
10.11.2010, 14:02 | #8 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 15
|
Программа поддерживает 4 команды. Это Cls, Time, RD, Time. В программе они уже записаны как:
Com_Time db 'Time$',0 Com_Clear db 'CLS$',0 Com_RD db 'RD$',0 Com_Exit db 'Exit$',0 Т.е. с этими переменными программа будет сравнивать введенные с клавиатуры команды |
14.11.2010, 13:46 | #9 |
Форумчанин
Регистрация: 04.06.2010
Сообщений: 212
|
процедура Actionproc которая запускается с параметром встеке по адресу ss:[bp+4], в котором содержится номер команды напичатоной пользователем. Номера в током же порядке как описаны в сегменте data.
Тебе надо будет просто выбрать параметр в процедуре ActionProc и по нему выполнить нужные действия. К примеру я там написал обработку команды Exit. Потом если будет, что не понятно пояcню как раблтает, посто сегодня времени нехватает пояснить. вот код: Код:
мой сайт http://wanes101.16mb.com/myblog
Последний раз редактировалось Stilet; 18.11.2010 в 14:15. |
18.11.2010, 14:10 | #10 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 15
|
Спасибо. Очень помогло.
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сравнение строк в С++ | Китти | Общие вопросы C/C++ | 2 | 12.10.2010 16:56 |
Сравнение строк | Dasharnb777 | Общие вопросы .NET | 5 | 22.09.2010 20:46 |
Макрос на сравнение и подсчет в первом столбце строк, и сумирование значений этих строк в другом столбце | Shpr0T | Microsoft Office Excel | 8 | 30.08.2010 17:52 |
Сравнение строк, ввод пароля (assembler) | You_must_help | Помощь студентам | 7 | 19.04.2009 23:53 |
Сравнение строк | HOMER | Общие вопросы Delphi | 7 | 04.01.2008 05:53 |