|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.06.2013, 10:53 | #1 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
Asm аналог strcmp
помогите написать аналог strcmp (Си) на ассемблере, нужно для курсовой обязательно сделать ассемблерную вставку, это единственное место где я придумал ее присобачить, предположительно будет что то типа:
Код:
|
17.06.2013, 11:10 | #2 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
сейчас извратился вот так, только не знаю как правильно вернуть значение функции, да и размер операндов не совпадает
Код:
|
17.06.2013, 11:14 | #3 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
потом дошло что я всю строку сравниваю :D ладно буду думать -_- подскажите хоть как посимвольно брать от строки
|
17.06.2013, 13:17 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
mov ebx, str1
mov al,[ebx] inc ebx jmp again Другая пара регистров для второий строки и сравнивайте. В вашем примере вы сравнили адреса строк а не их содержимое. |
17.06.2013, 17:49 | #5 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
можете прокомментировать? не слишком понимаю значение mov al,[ebx], к тому же разве str1 влезет в ebx? да и цикл наверное проще по loop делать
|
17.06.2013, 23:41 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
mov al,[ebx] читайт из ячейки памяти, чей адрес указан в регистре EBX.
В EBX влезает не строка str1 а ее адрес - чуствуете разницу? loop может и проще, но надо знать длинну строки заранее. Для начала напишите свою версию на С - когда все поймете и все заработает будет легче переводить на АСМ. |
17.06.2013, 23:58 | #7 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
что то навроде этого?
Код:
Последний раз редактировалось NewLamer&Programer; 18.06.2013 в 00:00. |
18.06.2013, 00:02 | #8 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,302
|
Цитата:
Лучше реализовать вариант без strlen, иначе придется и ее писать на asm.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
18.06.2013, 00:04 | #9 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
я не знаю как узнать длину строки иначе
|
18.06.2013, 00:21 | #10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,302
|
Си-строки заканчиваются нуль-терминантом.
Примерно это выглядит так: Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сравнение строк через strcmp(), Си++ | Evielle | Помощь студентам | 12 | 28.04.2012 17:14 |
strcmp,strcasecmp | kilogram | Общие вопросы Delphi | 2 | 10.04.2012 20:31 |
Функция strcmp | bot.bat | Помощь студентам | 12 | 23.11.2011 16:16 |
Функция strcmp() | ts-alan | Общие вопросы C/C++ | 4 | 04.09.2010 23:00 |
strlen,strcpy,strcmp(Visual C++) | crit | Visual C++ | 14 | 09.04.2009 19:10 |