[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
メール
|
1-
101-
201-
301-
401-
501-
601-
701-
801-
901-
1001-
1101-
1201-
1301-
1401-
1501-
1601-
1701-
1801-
1901-
2001-
2101-
2201-
2301-
2401-
2501-
2601-
2701-
2801-
2901-
3001-
3101-
3201-
3301-
3401-
3501-
3601-
3701-
3801-
3901-
4001-
4101-
4201-
4301-
4401-
4501-
4601-
4701-
4801-
4901-
5001-
5101-
5201-
5301-
5401-
この機能を使うにはJavaScriptを有効にしてください
|
管理人の独り言(プログラミング関連)
1849
:
◆adhRKFl5jU
:2009/04/29(水) 13:07:23
#include <cstdio>
#include <windows.h>
extern "C"{
int test();
int IsCanUseCpuid();
struct CpuidData{
unsigned int eax, ecx, edx, ebx, esp, ebp, esi, edi;
};
void Cpuid(unsigned int, CpuidData*);
}
using namespace std;
int main(int argc, char **argv){
printf("%d\n", test());
printf("%d\n", IsCanUseCpuid());
CpuidData cd;
Cpuid(0, &cd);
char str[13];
*((unsigned int*)&str[0]) = cd.ebx;
*((unsigned int*)&str[4]) = cd.edx;
*((unsigned int*)&str[8]) = cd.ecx;
str[12] = '\0';
printf("%s\n", str);
MessageBox(NULL, TEXT("TEST"), NULL, MB_OK);
}
-----
global _test
global _IsCanUseCpuid
global _Cpuid
section .text
;引数
;1:eaxに入れる値
;2:レジスタの結果を入れる32bytes分のバッファへのポインタ
;void __cdecl Cpuid(unsigned int, unsigned char (*)[32]);
align 16
_Cpuid:
mov eax, [esp + 4]
cpuid
mov [esp + 4], eax
mov eax, [esp + 8]
mov [eax + 4], ecx
mov [eax + 8], edx
mov [eax + 12], ebx
mov [eax + 16], esp
mov [eax + 20], ebp
mov [eax + 24], esi
mov [eax + 28], edi
mov ecx, eax
mov eax, [esp + 4]
mov [ecx], eax
ret
;int __cdecl IsCanUseCpuid();
align 16
_IsCanUseCpuid:
push ebx
pushfd
mov eax, 1 << 21
pop ebx
mov ecx, ebx
mov edx, ebx
xor ebx, eax
and edx, eax
push ebx
popfd
pushfd
pop ebx
and ebx, eax
xor eax, eax
cmp ebx, edx
setne al
push ecx
popfd
pop ebx
ret
align 16
_test:
push ebp
mov ebp, esp
and esp, 0xFFFFFFF0
sub esp, 0x40
xorpd xmm0, xmm0
xorpd xmm1, xmm1
xorpd xmm2, xmm2
xorpd xmm3, xmm3
xorpd xmm4, xmm4
xorpd xmm5, xmm5
xorpd xmm6, xmm6
xorpd xmm7, xmm7
xor eax, eax
mov esp, ebp
pop ebp
ret
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板