gpt4 book ai didi

c - .byte 在这个 asm 行中是什么意思?

转载 作者:行者123 更新时间:2023-12-01 00:45:00 24 4
gpt4 key购买 nike

我正在重新审视我不久前编写的对大数进行一些数学运算的代码。当我编写代码时,实验室有几个 x86,它们分为 32 位和 64 位。我的工作是在 UltraSPARC 上,我依稀记得从 Intel 手册中提取这行代码,以确保该代码在 64 位 CPU 上使用。

unsigned long x[4];
x[0] = 0;
x[1] = 0;
x[2] = 0;
x[3] = 0;
asm volatile(".byte 15;.byte 162" : "=a"(x[0]),"=b"(x[1]),"=c"(x[3]),"=d"(x[2]) : "0"(0) );

如果 x[0] 为 0,则一切正常,程序开始运行。

谁能向我解释这行代码实际上做了什么?

最佳答案

字节 .byte 15.byte 162代表CPUID操作说明。
当它执行时,你会在 EAX 中得到结果, EBX , ECX , 和 EDX .

这些结果将存储在数组元素中:

x[0] <- EAX
x[1] <- EBX
x[2] <- EDX
x[3] <- ECX

关于c - .byte 在这个 asm 行中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35230027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com