重複の可能性:
x86 を小文字のアセンブリに変換
私の問題では、すべてを小文字に変更する必要がある 2 次元の char 配列があります。
char list[100][20] = {{"ArtUro"}, {"Bryan"}, {"chris"}, {"David"}, {"Jon"}, {"Mark"}, {"shane"}, {"SIMON"}, {"Thomas"}, {"TONY"}};
そして、私が持っています
int b_search (char list[100][20], int count, char* token)
{
__asm
{
mov eax, 0 ; zero out the result
mov esi, list ; move the list pointer to ESI
mov ebx, count ; move the count into EBX
mov edi, token ; move the token to search for into EDI
MOV ecx, 0
LOWERCASE_ARRAY: ;for(ecx = 0, ecx<ebx; ecx++), loops through each name
CMP ecx, ebx
JGE GET_OUT
INC ecx ;ecx++
MOV edx, 0; ;edx = 0
LOWERCASE_STRING: ;while next char != 0, loop through each byte to convert to lower case
OR [esi+edx],20h ;change to lower case
INC edx
CMP [esi+edx],0 ;if [esi+edx] not zero, loop again
JNZ LOWERCASE_STRING
JMP LOWERCASE_ARRAY ;jump back to start case change of next name
GET_OUT:
ArtUro を小文字に変換することに成功しましたが、配列を Bryan のアドレスにトラバースする方法がわかりません。これは、20 でスケーリングできず、20 を追加するとESI
別の場所に移動するためです。