이 프로그램은 char
포인터를 소문자로 변환합니다. Visual Studio 2010을 사용하고 있습니다.x86 소문자로 변환
이 질문은 다른 질문에서 비롯된 것이지만 훨씬 더 간단하고 이해하기 쉽습니다. 나는 모두 소문자, 내가, 처리되지 않은 예외 ... 액세스 위반을 받고 유지로와 괄호 아무것도하지 않고 토큰에 주소를 포함 레지스터를 변경하기 위해 노력하고있어 내 또는 명령에서
int b_search (char* token)
{
__asm
{
mov eax, 0 ; zero out the result
mov edi, [token] ; move the token to search for into EDI
MOV ecx, 0
LOWERCASE_TOKEN: ;lowercase the token
OR [edi], 20h
INC ecx
CMP [edi+ecx],0
JNZ LOWERCASE_TOKEN
MOV ecx, 0
, I 오류는 발생하지 않지만 소문자는 발생하지 않습니다. 어떤 충고? 이것은 다른 질문의 일부 더 큰 코드의 일부이지만이 솔루션 만 필요했기 때문에 문제가 발생했습니다.
작동합니다 당신이 어셈블리를 사용해야합니까? 이미 'tolower (char)'가 있습니다. – chris
조언이 필요하십니까? 코드를 디버깅하십시오. 우선,'edi'에서'token'의 값을 얻고 있습니까? –
@chris 숙제 문제, 아마도. – Wug