我在汇编器中有程序,我想向String strV的每个字母添加一个值(在此情况下为+3),它是字节指针。我尝试仅对首字母添加3,但是proc返回的是奇怪的符号或什么都没有,因此我寻求帮助。 (返回的指针将在C ++中分配给char * string)。

start proc strV: PTR BYTE
    mov eax, [strV]
    ret
start endp

最佳答案

您要在字符串的每个字母上加3吗?

以下代码未经测试,但可以正常工作。当然,假设您的字符串是NUL终止的字符串。

我只是检查我们是否在字符串的末尾,
如果不是,它加3并继续前进。

start proc strV: PTR BYTE
    mov eax, strV
next:
    cmp byte ptr [eax], 0
    je done
    add byte ptr [eax], 3
    inc eax
    jmp next
done:
    ret
start endp

09-12 16:30