我在汇编器中有程序,我想向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