近来小菜鸟碰到几个问题,就是在设计程序时需要得到CPU和主板的ID(序列号),有哪位大侠肯教我几招,小菜鸟不胜感谢,呵呵!
解决方案 »
- 各位有什么好的控件或其他方法实现此算法
- 怎么获得输入法里的英文?实现由中文五笔向英文的自动切换
- 关于取三个当前时间函数的值不同的问题。很晕!
- 一个简单的问题 请高手进入(分不够在添)
- 请问哪位大虾知道"ADOUserControl"控件哪里有载? 在线等待! 立马给分!
- 那位好心人给解决一下??加250分!(在线等,下班前结贴)!
- 怎样实现打印我用 Fast Report 编辑好的报表?(急)
- 常用软件安装器这个界面及功能如何实现
- TNMSTP发送Email(带有4兆的附件)时出现512k太大,不知道是什么原因,怎么解决?
- 如何缩小一个位图,效果好?
- SPcomm控件遇到难题???
- 关于DELPHI访问数据库的一个简单问题
mov save_esi, ESI
mov save_esp, ESP
mov save_ebp, EBP
mov save_ebx, EBX
mov eax,0
DW $A20Flea esi, a
mov edi, 0// mov a[0],ebx
mov dword ptr [esi+edi], ebx
add edi, 4// mov a[4],edx
mov dword ptr [esi+edi], edx
add edi, 4
// mov a[8],ecx
mov dword ptr [esi+edi], ecx
mov ebx, save_ebx
mov ebp, save_ebp
mov esp, save_esp
mov esi, save_esi
mov EDI, save_edi
end;
---------------------------
var rebx,recx,redx:dword;str1:string;beginasmmov eax,0db 0fh,0a2h // cpuidmov rebx,ebxmov recx,ecxmov redx,edxend;str1:=chr(rebx mod $100)+chr((rebx div $100) mod $100)+chr((rebx div$10000) mod $100)+chr((rebx div $1000000) mod $100);str1:=str1+chr(redx mod $100)+chr((redx div $100) mod $100)+chr((redx div$10000) mod $100)+chr((redx div $1000000) mod $100);str1:=str1+chr(recx mod $100)+chr((recx div $100) mod $100)+chr((recx div$10000) mod $100)+chr((recx div $1000000) mod $100);edit1.text:=str1; {一执行此句就出错}end;end.eax, ebx都是比较重要的寄存器,建议你用它们之前先将其入栈(最好将所有寄存器入栈比较保险:pushad/popad),在用完后弹出栈。*************有这样一段代码得出CPU厂家:int mycpuid[20];tchar zzz[20];_asm{mov eax,0cpuidmov mycpuid[0],ebxmov mycpuid[4],edxmov mycpuid[8],ecx}sprintf(zzz,"CPU厂家为:",mycpuid);在VC中编译通过。然而我在DELPHI中却总是无法通过!并且不认cpuid(注:CPUID为微处理器中的一条指令):温柔一刀 时间:00-12-27 16:34:36 ID:426417CPUID这一句换成:DW $A20F --------------------------------------------------------------------------------来自:chentf 时间:00-12-28 10:06:14 ID:426985vara:array of integer;beginasmmov eax,0DW $A20Fmov a[0],ebxmov a[4],edxmov a[8],ecxend;按F9执行,出现错误提示框:project project1.exe raised exception class ezccessviolation with message 'accessviolation at address 00404B58 in module 'project1.exe',write of address 7563653f'.然后由于水平有限,也看不懂CPU中的消息. --------------------------------------------------------------------------------来自:Iknow 时间:00-12-28 11:12:33 ID:427051试试以下代码:vara:array[0..15] of byte;dword save_edi, save_esi, save_esp, save_ebp, save_ebx;beginasmmov save_edi, EDImov save_esi, ESImov save_esp, ESPmov save_ebp, EBPmov save_ebx, EBXmov eax,0DW $A20Flea esi, amov edi, 0 // mov a[0],ebxmov dword ptr [esi+edi], ebxadd edi, 4// mov a[4],edxmov dword ptr [esi+edi], edxadd edi, 4// mov a[8],ecxmov dword ptr [esi+edi], ecx mov ebx, save_ebxmov ebp, save_ebpmov esp, save_espmov esi, save_esimov EDI, save_ediend;end;