|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.05.2011, 00:42 | #1 |
Новичок
Джуниор
Регистрация: 23.05.2011
Сообщений: 2
|
Сравнение элементов массива.
Добрый вечер!
Сравниваю два элемента: (указатель на a передан функцией) mov eax, [a] add eax, 1 xor ebx, ebx mov ebx, [eax] mov temp_char, ebx add eax, 1 mov ebx, [eax] cmp temp_char, ebx JNE exit mov [eax], 's' Но в ebx почему-то кладется не сам элемент массива, а страшное многозначное число. Почему? (Это ассемблерная вставка в си. Есть массив, нужно с помощью ассемблерной вставки в си найти одинаковые элементы и убрать заменить их всех кроме одного, скажем, на '$'. Это задача полностью. Здесь я пытался просто посмотреть работу сравнения: он должен сравнить второй и третий элементы, в случае совпадения поставить вместо третьего s. В переменной я сохранял потому, что cmp не захотел сравнивать два регистра.) Последний раз редактировалось anon321; 25.05.2011 в 01:07. |
25.05.2011, 02:16 | #2 |
Форумчанин
Регистрация: 09.03.2008
Сообщений: 127
|
Код:
Это зависит от того как параметр передаешь в ф-цию Код:
Код:
Код:
Код:
надо так вместо этого сделать: Код:
Код:
Код:
Код:
Эти две команды можно заменить на одну: Код:
Код:
Код:
Код:
Код:
Код:
можно так: Код:
Код:
Код:
Последний раз редактировалось |{ot; 25.05.2011 в 02:20. |
25.05.2011, 02:16 | #3 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
"Страшное число" берется, видимо, потому, что массив состоит из однобайтовых элементов, а регистры eax и ebx - 32-битные (четырехбайтовые). Потому, соответственно, в них загружалось 4 элемента массива, а не один.
Должно быть так: Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод элементов массива.Изменение элементов массива. | Vesnushka18 | Помощь студентам | 6 | 09.06.2011 13:05 |
Записать в массив Z подряд семь нулевых элементов массива R,состоящего из N элементов.(Язык QBasic) | Лиза) | Помощь студентам | 0 | 11.01.2011 16:02 |
Сумма и произведение элементов массива, удовлетворяющих условию (генерация float массива) | felodese | Помощь студентам | 1 | 11.11.2010 20:52 |
найти среднее арифметическое элементов массива состоящее из 5 элементов | viatlon | Общие вопросы C/C++ | 9 | 12.12.2009 00:45 |
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива | HazelHen | Общие вопросы C/C++ | 2 | 29.03.2009 15:16 |