Предполагая, что у меня есть место в памяти, в которое я хочу скопировать данные, и у меня есть этот адрес в указателе. Можно ли скопировать данные в этом месте с помощью инструкции 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;
}