inline-assembly

    0热度

    2回答

    我在将内联汇编程序功能转换为.asm文件时遇到问题。我需要单独的内联汇编代码,因为在x64架构中不支持内联汇编。 下面是代码, #include <windows.h> #include <string> #include <iostream> #include <tlhelp32.h> using namespace std; int filter(int code)

    0热度

    2回答

    我有一个复杂的问题需要解决,因为我卡住了,根本没有办法解决这个问题。 这里有一个代码 struct MyStruct { int x; float y; char c; }; void foo(MyStruct a_myStruct); int _tmain(int argc, _TCHAR* argv[]) { void *pMyStru

    5热度

    1回答

    如果非要在Windows VC++下面的代码: DWORD somevar = 0x12345678; _asm call dword ptr [somevar] 我怎样才能使GCC内联汇编同样的事情,与AT & T语法? __asm__ __volatile__ ( "call dword ptr [%%edx]" : : "d" (somevar) ); 我已经试

    3热度

    1回答

    我正在为8086处理器编写小内核(在BC3.1中,在Windows XP上作为主机操作系统工作)。内核是多线程的,所以当我使用printf或cout进行调试时(在代码中的某处,printf将InterruptEnable标志设置为1,并且我的计时器中断例程调用了调度并且代码崩溃),我遇到了问题。 正因为如此,我在联汇编写的简单puts功能: void _printf(char *c) {

    1热度

    1回答

    我在C++/CLI中使用Inline asm。可怕的问题实际上可能是我所忽视的一个错误。 我从一个函数调用向另一个函数传递矢量。如果我在被调用的函数内部注释了_asm {....一些汇编代码}的整个代码片段,其中从其他函数向其提供的向量使用,则没有问题整个向量可以正确地复制到调用函数的参数中以正确的方式。 但是如果uncmment _asm {}我的意思是如果我在被调用的函数中使用_asm {}补

    2热度

    2回答

    我正在阅读KVM源代码并面对x86_64内联汇编。在下面的代码中,“%c”的用法是什么?它是x86_64内联汇编中的新功能吗? gcc中的x86_64内联汇编中的新功能的任何参考? 非常感谢 /* Check if vmlaunch of vmresume is needed */ "cmp $0, %1 \n\t" /* Load guest registers. Don't

    3热度

    1回答

    由于MSVC10在定位x64体系结构时不允许使用内联ASM指令,因此我正在寻找解决此类限制的任何方法。我从Google中学到了编写和编译单独的ASM模块,然后链接它们并从C++调用它们的方法,但是我不知道如何做到这一点。除了使用编译器内部函数之外,还有其他方法吗?或者,如何在VS2010中针对单独的ASM模块编写/编译/链接?

    1热度

    3回答

    我怎样才能从堆栈写入字符串(例如“Hello”)到标准输出?没有,数据段,也就是说。 void main() { __asm__( "movl $0x4, %eax \n\t" "movl $0x1, %ebx \n\t" // put "Hello" on the stack and load its address into %ecx

    2热度

    4回答

    编译错误,我不明白为什么这个代码 #include <iostream> using namespace std; int main(){ int result=0; _asm{ mov eax,3; MUL eax,3; mov result,eax; } cout<<result<<endl; ret

    1热度

    1回答

    当读的Linux内核0.01我传丢,这是很难的一些行内的气体为我解码: __asm__("movl $0x3ff000,%%eax\n\t" "movl %%eax,%%db0\n\t" "movl $0x000d0303,%%eax\n\t" "movl %%eax,%%db7" :::"ax") 或 __asm__("push %%f