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) ); 我已经试

    4热度

    2回答

    经过大量的网络研究之后,我在C++程序中实现了一个小型汇编程序,以便使用cpuid获得CPU的L1高速缓存大小。 int CPUID_getL1CacheSize() { int l1CacheSize = -1; asm ("mov $5, %%eax\n\t" // EAX=80000005h: L1 Cache and TLB Identifiers "

    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 {}补

    4热度

    2回答

    我有一个代码可以改变将被调用的函数到我的新函数,但我不想只调用我的新函数,我也想调用旧函数。 这是一个例子,这样你就可以明白我在说什么: 如果我拆开我的.exe文件,我会看这个部分: L0: mov eax, [L00654321] //doesn't matter mov ecx, [eax+1Ch] //doesn't matter push esi

    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