|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.06.2013, 16:26 | #21 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
1. а что ассемблер на работает с типом bool
2. чисто предполагаю что в регистр ah занесется адрес первого элемента eax 3. мне не совсем понятна строка inc eax, то есть я знаю что такое inc, просто мне не понятно что будет если инкрементировать тип char |
18.06.2013, 16:35 | #22 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
1) я не знаю (у меня всего полгода был курс ассемблера, и мне не приходилось использовать этот тип)
2) я хотел сказать, что после операции mov ah, [eax] в eax уже будет хранить не адрес, ссылающийся на один из символов строки, а непонятно что (Вы посмотрели статью на Википедии? ah является всего лишь частью eax) 3) в eax хранится адрес - число inc eax просто увеличивает хранящееся в нем число то, что это число - адрес на char, знает только программист в данном случае
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
18.06.2013, 16:42 | #23 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
1. у самого полгода
2. ах да только что заметил, переделал 3. опять таки мне надо как то в конце строк сделать вернуть 0 Код:
|
18.06.2013, 16:46 | #24 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Посмотрите на примерный код несколько постов назад.
mov bx, [eax] mov ax, [ebx] Так Вы "рушите" адрес в ebx, а затем в eax. На данный момент Ваш код при одинаковых первых символах в строке входит в бесконечный цикл.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 18.06.2013 в 16:50. |
18.06.2013, 17:42 | #25 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
да что же такое то тогда так:
mov cx, [eax] mov dx, [ebx] |
18.06.2013, 17:48 | #26 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Хорошо, теперь не происходит порчи адресов.
Следующий вопрос - размер. char - 8-битный, а cx и dx - 16-битные. Из-за этого, сравнение будет происходить, скорее всего, неправильно.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
18.06.2013, 17:57 | #27 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
тогда...
mov ch, [eax] mov dh, [ebx] |
18.06.2013, 18:13 | #28 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Да, думаю так. Раз (предположительно) значение возвращается через eax, то стоит отказаться от его использования в вычислениях. В данном случае это сделать несложно, так как для всех операций понадобится 4 регистра: eax - для результата, ebx, ecx - для адресов, edx - для символов из строк.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
18.06.2013, 18:44 | #29 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
не понял смысл отказа от использования eax, мы ведь только в конце ему присваиваем результат, до этого то можно делать с ним что угодно...
|
18.06.2013, 18:47 | #30 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Можно и не отказываться. Вы посмотрели реализацию в 17 посте?
Если заполнять eax только результатом (а до этого использовать в вычислениях), то логика переходов, на мой взгляд, будет сложнее.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сравнение строк через 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 |