![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 15
|
![]()
Доброго времени суток. Недавно начал писать программу на ассемблере, используя Masm, и столкнулся с проблемой сравнения строк.
Суть вот в чём: с клавиатуры вводится команда, затем программа проверяет, есть ли в ней такая команда и выполняет её (если есть), в противном случае, выводит сообщение об ошибке и ожидает ввода следующей команды. Проблема началась с того, когда я начал сравнивать введённую строку и уже имеющуюся в сегменте данных строку с командой. Программа всё время пишет, что команда не найдена. Прошу Вашей помощи. Подскажите как можно сравнить введенную с клавиатуры строку с уже имеющейся и при этом, выполнить действия связанные с этой командой? Заранее благодарен. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
repe cmpsb?)
или АПИ CompareString. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 15
|
![]() Код:
Последний раз редактировалось Stilet; 14.11.2010 в 16:42. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
а где далее условие?(je)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 01.11.2010
Сообщений: 15
|
![]()
Условие есть в программе. Но суть в том, что строки buffer и Com_Time не получаются равными.
Код:
Последний раз редактировалось Stilet; 14.11.2010 в 16:42. |
![]() |
![]() |
![]() |
#6 |
Python,C++,ASM,Php
Пользователь
Регистрация: 29.08.2010
Сообщений: 58
|
![]()
Это было реализовано, и весьма неплохо в GlukOS на TASM.
Исходники GlukOS Хакер - это не ламер с завышенным самомнением, а программист с заниженной зарплатой.
Нелегка и неказиста жизнь простого программиста. |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 04.06.2010
Сообщений: 212
|
![]() Цитата:
Как в буфере различаются команды между собой (0, пробел, или без раз делений) И каков размер буфера всех команд? Попробую написать код.
мой сайт http://wanes101.16mb.com/myblog
Последний раз редактировалось wanes101; 07.11.2010 в 08:54. |
|
![]() |
![]() |
![]() |
#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 Т.е. с этими переменными программа будет сравнивать введенные с клавиатуры команды |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 04.06.2010
Сообщений: 212
|
![]()
процедура Actionproc которая запускается с параметром встеке по адресу ss:[bp+4], в котором содержится номер команды напичатоной пользователем. Номера в током же порядке как описаны в сегменте data.
Тебе надо будет просто выбрать параметр в процедуре ActionProc и по нему выполнить нужные действия. К примеру я там написал обработку команды Exit. Потом если будет, что не понятно пояcню как раблтает, посто сегодня времени нехватает пояснить. вот код: Код:
мой сайт http://wanes101.16mb.com/myblog
Последний раз редактировалось Stilet; 18.11.2010 в 14:15. |
![]() |
![]() |
![]() |
#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 |