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

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

[复制链接]
发表于 2008-3-10 20:14:22 | 显示全部楼层 |阅读模式
下面是我用C写的读CPU信息的一小段代码,中间加入了32位读CPU信息的CPUID汇编指令,在windows下是没问题的,可是我是要编译出来在DOS下运行的,运行不了,我汇编可以说是白纸,我想请教下:有什么办法可以将32位指令改成16位的吗??或者是定义什么伪指令来执行?听说是实模式与保护模式的一种切换,可是我真的一点都不懂。。。虚心请教!3 \0 \$ \3 o) P7 Y6 \
或者我另知道可以通过SMBIOS来读取CPU信息,现在SMBIOS都2。7了吧,但是我在读SMBIOS中CPU部分的信息时,验证CORE的CPU不知道怎么识别不了,请指教啊!- b& m. m* `+ k* J0 R9 C
另如果要全部代码,可以提供。
% ^- B/ d5 u8 i% P2 F& ~% j" h: b2 o: d' t3 p
#include <stdio.h>
+ v" W! E% w2 n/ K' A#include "stdlib.h"* [$ ]2 ]8 o" b! S! W2 P  o+ N# _

4 u$ ~" R7 ^0 D) }' t  Omain()) V+ V/ c6 v5 ~) H9 A' H
{
8 w6 c6 B) C5 z. Funsigned long DBase;5 T% F8 A, g. [2 g9 Q3 j
char cA[13];
1 N4 _4 e, E  D_asm! p: }  p+ r% j' e% [! A
  {7 H" _6 r$ |1 P5 H/ l7 |6 ~
    mov eax, 0
/ W' a5 Y& ?; H    cpuid
3 _1 O) A2 Z4 V    mov DBase      ,eax
: M0 H( T/ _1 S4 r3 D1 j; a* N    mov dword ptr cA    ,ebx, |9 L3 D5 j. ]5 s& v; t2 Z1 ~/ K
    mov dword ptr cA+4  ,edx 3 m7 T  }- p8 @
    mov dword ptr cA+8  ,ecx
% A) g: z# w- a" t1 m  }
( c( N2 m; Z, E* @  cA[12] = '\0';
4 l! k9 I7 e. K$ F  printf( "CPU factory:  %s\n", cA );
9 y( g6 c; A; s) `( S( S1 v# m  system("pause");0 J- K+ F2 r( J' M; g1 R2 Z+ l. h
}
发表于 2008-3-11 09:05:45 | 显示全部楼层
可以用DOS下的C编译器编译成16位的程序。
; p* i  h0 e; e$ g0 v- X这应该跟保护模式和实模式的转换没有关系。
回复

使用道具 举报

 楼主| 发表于 2008-3-11 09:21:30 | 显示全部楼层
原帖由 kelvinklee 于 2008-3-11 09:05 发表
' o$ o# N$ ~* ?1 _可以用DOS下的C编译器编译成16位的程序。; t  c6 w# s2 @2 e% t
这应该跟保护模式和实模式的转换没有关系。
' q& J$ p9 S8 m

: u  O3 o' c2 d/ F4 {1 F5 QDOS下的C编译器你的意思是指DJGPP吗?可是我下载了还不会用。。。请教是不是要在纯DOS下才能用呢?
回复

使用道具 举报

发表于 2008-3-11 09:32:57 | 显示全部楼层
1、你的编译器是哪家的,编译参数是什么?0 x# m$ _, S: t: U! g
2、你运行不了的所发生的现象是什么?
! ^7 v# h4 B5 O0 J. K4 c3、你是怎么读SMBIOS信息的,你知道SMBIOS信息是怎么生成的吗?
回复

使用道具 举报

 楼主| 发表于 2008-3-12 13:00:55 | 显示全部楼层
多谢两位,我搞定了
/ |5 r9 B3 ^: P3 b+ M2 S% L& J, e" ~我不是读SMBIOS信息的,读SMBIOS信息我以前已经完成了,我现在是利用CPUID指令直接读CPU信息。
; L" o( O  e: A' P* S我用的是DJGPP内嵌汇编的方法,需要用DJGPP的编译器来编译。这样就可以在DOS下运行生成的执行文件。1 A7 `6 p. O( R
有需要代码的可以说。。
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 17:46 , Processed in 0.429992 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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