![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
系统级
_逸之
专注计算机科普,约稿、合作请私信。
简书:https://www.jianshu.com/u/af8d5ddcb7c5
知乎:https://www.zhihu.com/people/yizhi-in-computer
展开
-
[系统级] 汇编指令获取CPU信息
使用汇编指令cpuid获取CPU信息,可以得到CPU类型、型号、制造商信息、商标信息、序列号、缓存等一系列信息。cpuid使用eax作为输入参数,eax、ebx、ecx、edx作为输出参数。还用到了RDTSC指令获取CPU主频,RDTSC将处理器的时间标签计数器的当前值加载到 EDX:EAX 寄存器。//===========================================转载 2014-12-05 10:07:26 · 1777 阅读 · 0 评论 -
[系统级] 获取CPU使用率
#define _WIN32_WINNT 0x0501#include #include using namespace std;__int64 CompareFileTime ( FILETIME time1, FILETIME time2 ){ __int64 a = time1.dwHighDateTime << 32 | time1.dwLowDateTime ;原创 2014-12-01 16:49:24 · 1206 阅读 · 0 评论 -
[系统级] 汇编实现旋转锁
windows库已经提供了旋转锁的函数,为什么我们还要自己实现呢?因为汇编快啊!加锁先定义宏:#define INTERLOCKED_INCREMENT(A,B) \ __asm mov eax,0 \ __asm mov ecx,A \ __asm mov edx,1 \ __asm lock cmpxchg dword ptr [ecx],edx \原创 2014-12-29 18:29:22 · 1009 阅读 · 0 评论 -
[系统级] 线程入口函数作为类成员
由于类的成员函数在编译时会默认含有本类的this参数,这与线程函数要求的有且仅有一个void*参数不符,因此需要将作为类成员的线程入口函数声明为static,因为static成员函数没有默认的this指针。但static成员函数又不能操作类的非static成员变量,故需要将this指针显示地传给线程函数的void*形参,以此完美地实现线程函数作为类成员。//VMICMainControl.h原创 2015-06-02 15:28:12 · 619 阅读 · 0 评论