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

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

[复制链接]
发表于 2008-3-10 20:14:22 | 显示全部楼层 |阅读模式
下面是我用C写的读CPU信息的一小段代码,中间加入了32位读CPU信息的CPUID汇编指令,在windows下是没问题的,可是我是要编译出来在DOS下运行的,运行不了,我汇编可以说是白纸,我想请教下:有什么办法可以将32位指令改成16位的吗??或者是定义什么伪指令来执行?听说是实模式与保护模式的一种切换,可是我真的一点都不懂。。。虚心请教!
+ I7 j) _# S4 G" V/ {或者我另知道可以通过SMBIOS来读取CPU信息,现在SMBIOS都2。7了吧,但是我在读SMBIOS中CPU部分的信息时,验证CORE的CPU不知道怎么识别不了,请指教啊!+ {: t0 n+ B- y- }2 j6 Z
另如果要全部代码,可以提供。
- v' A, c- J4 }  j9 K  d8 I# y% C" C; {- r! X& U' Z
#include <stdio.h>
. ?; d7 |1 r( M! s#include "stdlib.h"( _" ]6 w+ F7 b6 w$ F3 C
) u- ^! `" m) K) W# _: V3 N) x2 |! Y' m
main(). X. q9 M+ P0 s
{# m9 u% x& i" v* B3 j
unsigned long DBase;
$ X, [: G; {# o! G* g. tchar cA[13];; T5 |5 X: ?  b# A9 I  d$ G
_asm8 c; U& A3 G5 e  W$ S5 c; G( L4 d  F
  {- O2 A& g8 z6 B$ Q  v& M* k
    mov eax, 05 ?* M" v$ K+ ]/ T- _
    cpuid
3 o, C: ?( t5 v1 G2 L    mov DBase      ,eax
1 x- z' h. \& {9 Y  U    mov dword ptr cA    ,ebx
$ Q8 }6 v: m- R6 k: x; b    mov dword ptr cA+4  ,edx : x+ L1 f5 B0 i: D3 g- n. m9 U; M
    mov dword ptr cA+8  ,ecx
0 m  q$ }" G* @* Q1 h  }8 l" s6 ^! |2 f6 S8 ?" N
  cA[12] = '\0';
+ Z( M) g" w* d8 i& s: E( c1 h  printf( "CPU factory:  %s\n", cA );/ o4 s, s4 {9 S6 I: p$ r
  system("pause");
. X9 o" @3 ?8 c}
发表于 2008-3-11 09:05:45 | 显示全部楼层
可以用DOS下的C编译器编译成16位的程序。
/ G9 D7 ^! i% V1 w4 K2 U  j这应该跟保护模式和实模式的转换没有关系。
回复

使用道具 举报

 楼主| 发表于 2008-3-11 09:21:30 | 显示全部楼层
原帖由 kelvinklee 于 2008-3-11 09:05 发表
1 A/ e9 {. X) v1 C可以用DOS下的C编译器编译成16位的程序。
& O+ c- D4 |) s  l这应该跟保护模式和实模式的转换没有关系。

. F. n! C4 |  A7 j5 k* I
; b! K% Q# x" g6 U' b+ mDOS下的C编译器你的意思是指DJGPP吗?可是我下载了还不会用。。。请教是不是要在纯DOS下才能用呢?
回复

使用道具 举报

发表于 2008-3-11 09:32:57 | 显示全部楼层
1、你的编译器是哪家的,编译参数是什么?) o: ]; F1 U2 p3 ]1 w  N6 g0 V
2、你运行不了的所发生的现象是什么?
% ], _( r/ d' B& M. w- s& j3、你是怎么读SMBIOS信息的,你知道SMBIOS信息是怎么生成的吗?
回复

使用道具 举报

 楼主| 发表于 2008-3-12 13:00:55 | 显示全部楼层
多谢两位,我搞定了
9 }$ w7 e" C4 j* ?8 R% Q我不是读SMBIOS信息的,读SMBIOS信息我以前已经完成了,我现在是利用CPUID指令直接读CPU信息。
5 I( z+ s$ J# ^' V我用的是DJGPP内嵌汇编的方法,需要用DJGPP的编译器来编译。这样就可以在DOS下运行生成的执行文件。1 v: ]  L: ~5 \' u# q
有需要代码的可以说。。
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-3-5 00:34 , Processed in 0.024094 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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