c++ - 如何在汇编程序中增加指针字母?

标签 c++ assembly 32-bit masm

我在汇编程序中有程序,我想给字符串 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

关于c++ - 如何在汇编程序中增加指针字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27824120/

相关文章:

audio - Windows上的32位音频?

tomcat - 如何确定 Tomcat 在窗口服务器上是 32 位还是 64 位?

c++ - 对静态类成员的 undefined reference

macos - 如何让这个简单的程序集运行?

c++ - 在 C++ 中计算非常大的数字

c - GCC 内联汇编操作所有寄存器?

c# - 为什么 typeA == typeB 比 type == typeof(Type B) 慢?

c++ - 32位和64位可以一起工作吗?

c++ - 栈有什么用?为什么它们在 C++ 中?

c++ - 如何将结构添加到 STL 列表