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

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

[复制链接]
发表于 2008-3-10 20:14:22 | 显示全部楼层 |阅读模式
下面是我用C写的读CPU信息的一小段代码,中间加入了32位读CPU信息的CPUID汇编指令,在windows下是没问题的,可是我是要编译出来在DOS下运行的,运行不了,我汇编可以说是白纸,我想请教下:有什么办法可以将32位指令改成16位的吗??或者是定义什么伪指令来执行?听说是实模式与保护模式的一种切换,可是我真的一点都不懂。。。虚心请教!# K. S( g2 R1 ^! h' G6 A: `' K5 ]# k) N
或者我另知道可以通过SMBIOS来读取CPU信息,现在SMBIOS都2。7了吧,但是我在读SMBIOS中CPU部分的信息时,验证CORE的CPU不知道怎么识别不了,请指教啊!
# J" T3 X0 A5 H, y另如果要全部代码,可以提供。
4 H; t2 n: F& d1 J* _7 M" g( r( m$ @4 U" R
#include <stdio.h>
! v: N- D# S; `; M, L#include "stdlib.h"- h: o# ?: i% t2 r& W" U& r

) ^4 T% k" N, F, L0 ^% A0 Ymain()
+ p2 f& Z& S* ~4 ~/ u4 `% _2 ~{7 S( ~3 d; ]3 q
unsigned long DBase;
: Y% {" _- f2 e8 H7 @6 echar cA[13];5 |  r+ n. ~* K1 L: O) C
_asm
* ]- L& m$ k7 @" B  {
0 N# e8 v! d! P) W3 E1 d+ J    mov eax, 0
! l. A" L: z# T3 |1 l# i: I    cpuid
# s3 C; j7 c$ O9 `% X/ W4 n1 [    mov DBase      ,eax
( r. y7 u' h2 H) r9 w8 R    mov dword ptr cA    ,ebx+ [/ W+ C  W, D! r% A
    mov dword ptr cA+4  ,edx
1 ]* w7 \5 k0 _- X, h4 D' q    mov dword ptr cA+8  ,ecx * [7 |* S5 Z8 E
  }
7 W, `  Q) K& x! F/ F  cA[12] = '\0'; / E5 }9 f+ }& Q- \9 r6 Q% H3 x
  printf( "CPU factory:  %s\n", cA );
# E$ n5 |, D4 j: S4 @0 `  system("pause");4 @0 S! @8 }# ^
}
发表于 2008-3-11 09:05:45 | 显示全部楼层
可以用DOS下的C编译器编译成16位的程序。, K! D0 u9 M3 c6 v  G" m9 y5 R
这应该跟保护模式和实模式的转换没有关系。
回复

使用道具 举报

 楼主| 发表于 2008-3-11 09:21:30 | 显示全部楼层
原帖由 kelvinklee 于 2008-3-11 09:05 发表
" R) r  k' ~7 f! [5 H- u! K可以用DOS下的C编译器编译成16位的程序。
. Q# G' H) y1 g& x) I  M这应该跟保护模式和实模式的转换没有关系。
5 K# d6 L# \. v; C' C0 D
$ b' _1 j# q9 D. u  {
DOS下的C编译器你的意思是指DJGPP吗?可是我下载了还不会用。。。请教是不是要在纯DOS下才能用呢?
回复

使用道具 举报

发表于 2008-3-11 09:32:57 | 显示全部楼层
1、你的编译器是哪家的,编译参数是什么?0 x& Z( `8 g7 L3 w* e( ~
2、你运行不了的所发生的现象是什么?" o: W% L' B% D/ q9 Y7 ~' Y
3、你是怎么读SMBIOS信息的,你知道SMBIOS信息是怎么生成的吗?
回复

使用道具 举报

 楼主| 发表于 2008-3-12 13:00:55 | 显示全部楼层
多谢两位,我搞定了% u( q: E% v& ?* P: N) g( e
我不是读SMBIOS信息的,读SMBIOS信息我以前已经完成了,我现在是利用CPUID指令直接读CPU信息。
, r$ }$ S+ d  z8 f. `8 d我用的是DJGPP内嵌汇编的方法,需要用DJGPP的编译器来编译。这样就可以在DOS下运行生成的执行文件。. Y  o2 q, O* N! m; \
有需要代码的可以说。。
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-21 22:13 , Processed in 0.251566 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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