我正在尝试在 visual studio 中用汇编编写一个 hello world 程序。我想在这样的指令之间将字符串保存为操作码
call label1
"hello world"
label1:
pop esi
push esi
call print
我如何在 Visual Studio 中执行此操作?
最佳答案
通过内联汇编,您可以使用 _emit
伪指令,如下所示(此处用于 32 位代码):
auto foo()
-> char const*
{
__asm
{
mov eax, offset my_data
jmp epilogue
my_data:
_emit 'H'
_emit 'e'
_emit 'l'
_emit 'l'
_emit 'o'
_emit '!'
_emit 0
}
epilogue: ;
}
#include <iostream>
using namespace std;
auto main() -> int
{
wcout << foo() << endl;
}
我不知道有什么方法可以使用内联汇编将字符串写成字符串。
我建议改用适当的完整汇编器。如果您使用的是 Visual Studio,那么您已经安装了它,它是 ml.exe
。
关于c++ - VS 在程序集操作码中嵌入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31766225/