需要将此unix汇编代码执行转换为等效的Windows

1 c c++ assembly

我对组装完全不熟悉; 目前我正在尝试将下面提到的汇编代码执行转换为等效的Windows,但甚至没有获得一个提示.任何帮助将asm块中的下述代码移植到等效的窗口都将受到高度赞赏.

void cpuid(uint32_t idx,
                  uint32_t *eax,
                  uint32_t *ebx,
                  uint32_t *ecx,
                  uint32_t *edx)
{

 asm volatile (
        "test %1,%1 ; jz 1f ; ud2a ; .ascii \"xen\" ; 1: cpuid"
        : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx)
        : "0" (idx), "1" (pv_context) );

}
Run Code Online (Sandbox Code Playgroud)

Ton*_*roy 5

汇编语言变体与CPU系列/型号有关,而与操作系统无关.此外,这看起来像是特定编译器支持的特殊asm编码...所以您可能希望使用相同的编译器(如果是可移植的)和/或端口到特定目标编译器的表示法.除非您解释可以定位的编译器,否则没有人可以帮助您.