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

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

[复制链接]
发表于 2008-3-10 20:14:22 | 显示全部楼层 |阅读模式
下面是我用C写的读CPU信息的一小段代码,中间加入了32位读CPU信息的CPUID汇编指令,在windows下是没问题的,可是我是要编译出来在DOS下运行的,运行不了,我汇编可以说是白纸,我想请教下:有什么办法可以将32位指令改成16位的吗??或者是定义什么伪指令来执行?听说是实模式与保护模式的一种切换,可是我真的一点都不懂。。。虚心请教!
1 x4 a$ `& S# }2 P$ T3 x或者我另知道可以通过SMBIOS来读取CPU信息,现在SMBIOS都2。7了吧,但是我在读SMBIOS中CPU部分的信息时,验证CORE的CPU不知道怎么识别不了,请指教啊!
8 |6 H4 ^' Q0 e3 K: A8 ]另如果要全部代码,可以提供。
% V6 s9 y8 _, ?" u; p" I( q/ X0 J( C% @3 X
#include <stdio.h>7 {2 K" M0 o0 ~+ E; e1 ~
#include "stdlib.h"
' \: D8 F1 N* |: G- b6 R
' g4 x0 S9 \  I& u, v7 Dmain()) |3 F5 n9 g, g+ Y
{- k% m. O7 _2 k$ K/ E; [
unsigned long DBase;7 z- Q, P9 L4 X( ?
char cA[13];* n; O8 p! h$ V0 n/ R1 `
_asm
$ q/ m6 t8 S) j" y! I/ d! U3 m  {# @1 U' F4 v; Y/ k6 |' }+ G, `
    mov eax, 01 U( `* Y6 F! ^' J/ W0 P
    cpuid
+ [3 b1 p/ j: w: E6 _* X5 y    mov DBase      ,eax
1 f; W6 i8 o" r3 S    mov dword ptr cA    ,ebx5 {- D( s1 {$ f, }6 \) E
    mov dword ptr cA+4  ,edx
  P6 N9 X- a. F" T9 [- A9 S    mov dword ptr cA+8  ,ecx
* a" A4 r# ^: I9 [% ?( a* Z% m' i  }
7 W3 ]+ d' a( D: d! M. a  cA[12] = '\0'; % P# y5 @! _7 x& P
  printf( "CPU factory:  %s\n", cA );
/ Z" C/ ?4 [4 `  system("pause");
: U2 n4 b! w) `}
发表于 2008-3-11 09:05:45 | 显示全部楼层
可以用DOS下的C编译器编译成16位的程序。
  u, d5 P6 d" _1 r: S$ X这应该跟保护模式和实模式的转换没有关系。
回复

使用道具 举报

 楼主| 发表于 2008-3-11 09:21:30 | 显示全部楼层
原帖由 kelvinklee 于 2008-3-11 09:05 发表
% d, Z2 h9 S* ?) W) B% y5 O可以用DOS下的C编译器编译成16位的程序。) ~7 d; K# Y5 c% k$ n
这应该跟保护模式和实模式的转换没有关系。
+ u5 K" |5 x; r/ U3 }" `+ _8 Z& M8 k

" h! t3 P7 A/ C. x$ tDOS下的C编译器你的意思是指DJGPP吗?可是我下载了还不会用。。。请教是不是要在纯DOS下才能用呢?
回复

使用道具 举报

发表于 2008-3-11 09:32:57 | 显示全部楼层
1、你的编译器是哪家的,编译参数是什么?
+ @8 x# M9 p$ e' j! K" i3 p2、你运行不了的所发生的现象是什么?5 G& ]* P. O4 o1 o1 q$ R
3、你是怎么读SMBIOS信息的,你知道SMBIOS信息是怎么生成的吗?
回复

使用道具 举报

 楼主| 发表于 2008-3-12 13:00:55 | 显示全部楼层
多谢两位,我搞定了. R1 Y  N( R( z7 [7 Q
我不是读SMBIOS信息的,读SMBIOS信息我以前已经完成了,我现在是利用CPUID指令直接读CPU信息。
$ f/ b# d1 r, M' ^我用的是DJGPP内嵌汇编的方法,需要用DJGPP的编译器来编译。这样就可以在DOS下运行生成的执行文件。- w% ~( _/ J: q! o+ D3 c
有需要代码的可以说。。
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-3 23:09 , Processed in 0.210421 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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