@sddvxd

Что можно улучшить в этой функции?

Добрый день!
Есть функция для проверки строк на nasm. Скажите пожалуйста - можно ли ее как-то улучшить

strcmp: ; stdcall
	push ebp
	mov ebp, esp
	push ecx
	push edx
	
	xor ecx, ecx
	mov eax, [ebp + 8]
	mov ebx, [ebp + 12]
.loop:
	mov dh, [eax + ecx]
	mov dl, [ebx + ecx]
	cmp dh, dl
	jne .end_not_equal
	test dh, dh
	jz .end_equal
	inc ecx
	jmp .loop
	
.end:
	pop edx
	pop ecx
	mov esp, ebp
	pop ebp
	ret
	
.end_not_equal:
	mov eax, 0
	jmp .end

.end_equal:
	mov eax, 1
	jmp .end
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
можно ли ее как-то улучшить

Зависит от того, что считать улучшением.
По размеру кода -- вряд ли можно улучшить существенно.
По скорости -- можно, если загружать данные из памяти выравненными словами и раскрутить цикл.
По простоте -- можно существенно улучшить, переписав её на С или вообще воспользовавшись готовой реализацией.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@forspamonly2
repe cmpsb?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы