假设我有一个要将数据复制到的内存位置,并且该地址在指针中, 是否可以通过MOV指令和内联汇编将数据复制到该位置。或者基本上我将如何通过内联汇编将数据复制到内存位置。
在下面提供的代码段中,我只是将我的值复制到eax
寄存器中,然后从eax
寄存器复制到某个out值,而我想将其复制到某个内存中地址。
简而言之,我想将eax寄存器中的内容存储在outpointer
所指向的地址中
内联汇编是否可能或有更好的方法?
#include <stdio.h>
#include <iostream>
using namespace std;
int func3(int parm)
{
int out =0;
// int *outpointer =&out;
//what is in the eax register I would like to store
//in the address pointed by outpointer
asm("mov %1 ,%%eax\n\t"
"mov %%eax, %0": "=r"(out) : "r"(parm));
// cout<<outpointer;
return out;
}
int main(int argc, char const *argv[])
{
int x{5};
int y{0};
y = func3(x);
cout<<y;
return 0;
}