我有这个代码
#include <iostream>
#include <conio.h>
using namespace std;
extern "C" char * DDD(char * h, int j);
int main()
{
char * g = "RRRR";
cout << "HELLO Says " << DDD(g, strlen(g)) << endl;
_getch();
return 0;
}
和这个
.data
gh db 'Y'
.code
DDD proc
lea rbx, [rcx]
push rbx
a20:
mov al, gh
mov byte ptr [rbx], al
inc rbx
dec rdx
cmp rdx, 0
jnz a20
pop rbx
mov rax, rbx
ret
DDD endp
end
我正在做的是将RRRR替换为YYYY。
我得错了mov byte ptr [rbx], al
它表示访问冲突。
我是装配新手,我只是想知道如何解决它。修改汇编代码也很受欢迎。
感谢。
答案 0 :(得分:3)
“RRRR”字符串存储在只读存储器中。您应该用char g[] = "RRRR";
之类的内容替换它的声明,以便能够写入它。