gpt4 book ai didi

c - x86 转换为小写程序集

转载 作者:行者123 更新时间:2023-11-30 19:49:41 24 4
gpt4 key购买 nike

该程序是将char指针转换为小写。我使用的是 Visual Studio 2010。

这是来自另一个问题,但更容易阅读,也更直接切中要点。

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

在我的 OR 指令中,我试图将包含 token 地址的寄存器更改为全部小写,我不断收到未处理的异常...访问冲突,并且没有括号什么都没有,我不明白错误但没有小写。有什么建议吗?这是另一个问题中一些更大代码的一部分,但我将其分解,因为我只需要这个解决方案。

最佳答案

您的代码只能更改第一个字符(或 [edi], 20h) - EDI 不会增加。

编辑:找到this thread与解决方法。尝试使用“dl”而不是 al。

; move the token address to search for into EDI
; (not the *token, as would be with mov edi, [token])

mov edi, token

LOWERCASE_TOKEN: ;lowercase the token
mov al, [edi]
; check for null-terminator here !
cmp al, 0
je GET_OUT
or al, 20h
mov dl, al
mov [edi], dl
inc edi
jmp LOWERCASE_TOKEN
GET_OUT:

关于c - x86 转换为小写程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11656464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com