|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.06.2013, 00:21 | #11 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
<дабл-пост>
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 18.06.2013 в 00:23. |
18.06.2013, 08:16 | #12 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
тоже нихрена не понял, прокомментируйте пожалуйста
п.с. не работает кстати, выводит первую запись все время с этой функцией Последний раз редактировалось NewLamer&Programer; 18.06.2013 в 08:22. |
18.06.2013, 12:07 | #13 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Не работает, потому что я задумался и изменил логику функции.
Она возвращает true, если строки совпадают, и false, если не совпадают. Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
18.06.2013, 15:02 | #14 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
заработало, только мне теперь еще это надо же перевести на ассемблер
во первых у меня такой вопрос общий: как в принципе вернуть значение функции на ассемблере чисто? ret осуществляет выход из функции, но куда поместить возвращаемое значение??? |
18.06.2013, 15:14 | #15 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Большинство необходимых команд уже привел waleri в 4 посте.
В простейшем случае возвращаемое значение должно находится в регистре eax.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
18.06.2013, 15:39 | #16 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
начал, не знаю как сделать true
Код:
Последний раз редактировалось NewLamer&Programer; 18.06.2013 в 15:42. |
18.06.2013, 15:49 | #17 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Лучше, наверное, возвращать int.
Насчет конфликта размеров - Регистры процессора. Вы задействуете один и тот же регистр. И никакого push eax, pop eax - иначе никакого смысла в функции не будет. Примерно это выглядит: Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 18.06.2013 в 16:03. |
18.06.2013, 16:06 | #18 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
1. а чем bool то не подходит? я же хочу реализацию написанной вами выше функции написать на ассемблере
2. в смысле один и тот же? al и ax это же разные регистры о_О во всяком случае мне так казалось... ошибка возникает в строке cmp если что 3. ааа понял про push, pop да точно бред |
18.06.2013, 16:10 | #19 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
п.с. понял про ax, al, не заметил ссылочку, заменил ax на ah
Код:
|
18.06.2013, 16:16 | #20 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Цитата:
Во-вторых, у Вас в eax адрес строки. Как Вы думаете, что с ним произойдет после mov ah, [eax]? В-третьих, в "цикле" again в eax и ebx все время оказываются адреса начал строк. Посмотрите примерный код выше.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сравнение строк через 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 |