#4 12.01.11 23:35
Re: использование ассемблерных вставок
xor это исключающее или (читается ксор)
je это условный переход если результат предыдущей операции равен 0
xor двух одинаковых символов даст 0. Конец строки даст при сложении 0, т.к. в си строка заканчивается нулём.
в si помещается указатель на начало строки S и начинаем продвигаться по строке, увеличивая si, пока не дойдём до конца строки или не встретим символ c
если символ не нашли возвращаем 0, если нашли то возвращаем указатель на этот символ в строке.
Исправлено $up (12.01.11 23:50)
Offline
#5 29.01.11 21:01
Re: использование ассемблерных вставок
подобные mov SI,S - это скопировать из S в SI, как в оригинале на ассемблере )
add SI,1 - сложить (без переноса) значение SI с единицей, то есть если это в двоичном виде, то например 00011000 плюс 1, равно 00011001. Но у тебя наверное целочисленные, тогда просто как +1.
Исправлено Tomahawk (29.01.11 21:07)
Offline
#9 13.04.11 12:20
Re: использование ассемблерных вставок
Aguero написал(а):
mov AL,0;
add AL,[SI]
типа обнулили строку и движемся по элементам?))
нет, это подготовка регистра AL для сложения с символом строки.
чтобы в зависимости от результата сложения делать условный переход je L3;
Aguero написал(а):
зачем переменная r ?))
чтобы вернуть результат работы функции
Offline

