2010/8/22:本掲示板は閲覧専用です。データが一部破損しておりますがご了承ください。
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  
1803 / 2351 ←次へ | 前へ→

【558】最終的には...
←back ↑menu ↑top forward→
 ひよひよ  - 04/1/13(火) 1:06 -

引用なし
パスワード
   -- CPUID.ASM -------------------------------
;PUBLIC AsmCPUID

.code

EXTERN asmOP:DWORD
EXTERN asmEAX:DWORD
EXTERN asmEBX:DWORD
EXTERN asmECX:DWORD
EXTERN asmEDX:DWORD

AsmCPUID PROC

mov eax,asmOP
cpuid
mov asmEAX,eax
mov asmEBX,ebx
mov asmECX,ecx
mov asmEDX,edx
ret 0

AsmCPUID ENDP

end

-- main.cpp --

extern "C" {
int AsmCPUID();
unsigned int asmOP;
unsigned int asmEAX;
unsigned int asmEBX;
unsigned int asmECX;
unsigned int asmEDX;
}

int main()
{
asmOP = 0;
AsmCPUID();
printf("CPUID:%08X EAX:%08X EBX:%08X ECX:%08X EDX:%08X\n",asmOP,asmEAX,asmEBX,asmECX,asmEDX);
asmOP = 1;
AsmCPUID();
printf("CPUID:%08X EAX:%08X EBX:%08X ECX:%08X EDX:%08X\n",asmOP,asmEAX,asmEBX,asmECX,asmEDX);
...

って感じです。絶対変だとは思うんですが、グローバル変数渡し以外にやり方がわからなかったので。まぁ、20バイトくらいいいですよね(^_^;

もう一段レイヤーを用意すれば既存の Win32 と完全互換が保てそうです。
136 hits

【556】.asm ぬじぬじ 04/1/12(月) 22:26 [添付][添付]
【557】Re:.asm ひよひよ 04/1/12(月) 23:24
【558】最終的には... ひよひよ 04/1/13(火) 1:06
【559】Re:最終的には... ぬじぬじ 04/1/13(火) 2:30
【560】Re:最終的には... ひよひよ 04/1/13(火) 8:39
【561】Re:最終的には... ぬじぬじ 04/1/13(火) 10:27
【562】逆転の発想... ひよひよ 04/1/13(火) 12:05 [添付][添付]
【563】Re:逆転の発想... ぬじぬじ 04/1/13(火) 12:40 [添付]
【564】Re:逆転の発想... ぬじぬじ 04/1/13(火) 12:41 [添付]
【565】Re:逆転の発想... ぬじぬじ 04/1/13(火) 12:45 [添付]
【566】Re:逆転の発想... ぬじぬじ 04/1/13(火) 12:46 [添付]
【568】Re:逆転の発想... ひよひよ 04/1/13(火) 12:50
【573】CPUID バッチリ ひよひよ 04/1/16(金) 23:55
【567】Re:逆転の発想... ひよひよ 04/1/13(火) 12:48

1803 / 2351 ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  
ページ:  ┃  記事番号:   
51982
(SS)C-BOARD v3.8(とほほ改ver2.1) is Free