找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 9824|回复: 5

好论坛啊!请教问题,南狼大哥帮忙啊!

[复制链接]
发表于 2008-3-10 20:14:22 | 显示全部楼层 |阅读模式
下面是我用C写的读CPU信息的一小段代码,中间加入了32位读CPU信息的CPUID汇编指令,在windows下是没问题的,可是我是要编译出来在DOS下运行的,运行不了,我汇编可以说是白纸,我想请教下:有什么办法可以将32位指令改成16位的吗??或者是定义什么伪指令来执行?听说是实模式与保护模式的一种切换,可是我真的一点都不懂。。。虚心请教!9 Q& \$ t8 y* e( S  n
或者我另知道可以通过SMBIOS来读取CPU信息,现在SMBIOS都2。7了吧,但是我在读SMBIOS中CPU部分的信息时,验证CORE的CPU不知道怎么识别不了,请指教啊!4 k6 |  ~2 a. f4 L
另如果要全部代码,可以提供。! H8 G0 @$ J) n+ `

/ l; Z. K8 H' I; O% Y# z$ b8 `9 v#include <stdio.h>9 m6 S  Q8 x0 D  i3 _
#include "stdlib.h"
1 U2 ]/ u. o& B  z" ~/ Z9 \8 ~4 E4 N/ R2 n2 c1 I: u
main()9 L% c0 K% F: |
{
& b0 d5 }) _$ n% {3 qunsigned long DBase;
, V0 x' h6 }* U0 v: U$ o8 kchar cA[13];3 f, E9 [+ n4 O% m4 N
_asm
5 J! W8 h( i+ w. I5 K" X  {
6 G- [# X8 T. V+ }+ K  u! r8 t    mov eax, 0
+ F1 W- {" y. |" G0 u    cpuid
  Z1 Y- }1 M! ]0 @1 w    mov DBase      ,eax
1 u* V  k0 |' ^    mov dword ptr cA    ,ebx% S3 ^+ k% L8 O
    mov dword ptr cA+4  ,edx
& R2 ?" X) n- k% R$ h' G5 {4 m+ z    mov dword ptr cA+8  ,ecx
* v2 @, u$ g2 m; ~  }
; `3 }9 m$ x7 U/ P) x  cA[12] = '\0'; & O8 |2 ~" z; x( K1 l% t9 x. y
  printf( "CPU factory:  %s\n", cA );
) c( J* A! \. A: W  system("pause");3 s# c4 p$ l4 [
}
发表于 2008-3-11 09:05:45 | 显示全部楼层
可以用DOS下的C编译器编译成16位的程序。
' F  c( r  f2 E! u' H- |0 w这应该跟保护模式和实模式的转换没有关系。
回复

使用道具 举报

 楼主| 发表于 2008-3-11 09:21:30 | 显示全部楼层
原帖由 kelvinklee 于 2008-3-11 09:05 发表 . O- N/ x, q' W: P) n* Q( n
可以用DOS下的C编译器编译成16位的程序。
( Y2 @! U' q3 K( _" m7 {+ x' d这应该跟保护模式和实模式的转换没有关系。

& f! S' i2 J: e( z6 _, v& |& v0 _0 L& N2 B5 X* b
DOS下的C编译器你的意思是指DJGPP吗?可是我下载了还不会用。。。请教是不是要在纯DOS下才能用呢?
回复

使用道具 举报

发表于 2008-3-11 09:32:57 | 显示全部楼层
1、你的编译器是哪家的,编译参数是什么?9 y2 F9 n" t. z% n& n8 `3 X
2、你运行不了的所发生的现象是什么?8 k$ z) p: Z$ v3 k' @
3、你是怎么读SMBIOS信息的,你知道SMBIOS信息是怎么生成的吗?
回复

使用道具 举报

 楼主| 发表于 2008-3-12 13:00:55 | 显示全部楼层
多谢两位,我搞定了7 I+ o2 a* v& a4 S+ t3 z$ W7 L
我不是读SMBIOS信息的,读SMBIOS信息我以前已经完成了,我现在是利用CPUID指令直接读CPU信息。
, ~+ c* f/ u& i- q! s, b我用的是DJGPP内嵌汇编的方法,需要用DJGPP的编译器来编译。这样就可以在DOS下运行生成的执行文件。) b4 Q( Z% [5 D
有需要代码的可以说。。
回复

使用道具 举报

发表于 2008-5-29 16:20:25 | 显示全部楼层
LZ有DJGPP的使用文档么?我曾经也载了一个,可是不会用。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-3-5 17:41 , Processed in 0.099917 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表