Сравнение элементов массива в ассемблере

Рейтинг: 2Ответов: 1Опубликовано: 24.05.2011

Сравниваются два элемента: (указатель на 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 почему-то кладется не сам элемент массива, а страшное многозначное число. Почему?

UPD: Это ассемблерная вставка в си. Есть массив, нужно с помощью ассемблерной вставки найти одинаковые элементы и убрать заменить их всех кроме одного, скажем, на $. Вот и вся задача. Здесь я пытался просто посмотреть работу сравнения: он должен сравнить второй и третий элементы, в случае совпадения поставить вместо третьего s. В переменной я сохранял, потому что cmp не захотел сравнивать два регистра.

Ответы

Ответов пока нет.