免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3608 | 回复: 13
打印 上一主题 下一主题

CPU信息显示问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-08 12:51 |只看该作者 |倒序浏览
程序编译通过,但无显示(运行环境:WIN2000,MASM-ML:6.15)。代码如下:

.MODEL small
.386
.DATA
.CODE
.startup
PUSH EBX;
PUSH EDI;
MOV EDI,EAX;
MOV EAX,0;
DB 0FH,0A2H;
MOV EAX,EBX;
XCHG EBX,ECX;
MOV ECX,4;

A1:
STOSB;
SHR EAX,8;
LOOP A1;
MOV EAX,EDX;
MOV ECX,4;

A2:
STOSB;
SHR EAX,8;
LOOP A2;
MOV EAX,EBX;
MOV ECX,4;

A3:
STOSB;
SHR EAX,8;
LOOP A3;
POP EDI;
POP EBX;

.exit 0
end

论坛徽章:
0
2 [报告]
发表于 2008-09-08 13:10 |只看该作者
原帖由 milanfeng 于 2008-9-8 12:51 发表
程序编译通过,但无显示(运行环境:WIN2000,MASM-ML:6.15)。代码如下:

.MODEL small
.386
.DATA
.CODE
.startup
PUSH EBX;
PUSH EDI;
MOV EDI,EAX;
MOV EAX,0;
DB 0FH,0A2H;
MOV EAX,EBX;
X ...


汗~ 您有I/O操作吗

论坛徽章:
0
3 [报告]
发表于 2008-09-08 16:43 |只看该作者
输出? STOSB从DI所指定的区域将字符输出至屏幕,不是吗? 那请教,如何改动程序才能显示CPU信息的输出?

论坛徽章:
0
4 [报告]
发表于 2008-09-08 17:00 |只看该作者
我感觉最好还是中断调用system call达到输出的目的

或者写个thunk
extern void my_print(char*);
void my_print(char* info)
{
    printf("%s\n", info);
}

汇编中
push offset info
call my_print
add esp, 4

链上C库,静态动态都行

汇编码只说个意思,勿照搬:wink:

论坛徽章:
0
5 [报告]
发表于 2008-09-08 17:03 |只看该作者
picktracy ,谢谢你的回答。 因为涉及到系统启动信息, 希望能有纯粹汇编程序的答案。

论坛徽章:
0
6 [报告]
发表于 2008-09-08 17:10 |只看该作者
哦,难怪你这么写,系统启动时有bios吧,我记得bios好像有输出屏幕的调用,不太熟,抱歉,不过既然bios也打印信息。。。

论坛徽章:
0
7 [报告]
发表于 2008-09-08 17:21 |只看该作者
用STOSB打印屏幕信息也可以的,但我就是还不知道怎么改才能打印出CPU信息.........

论坛徽章:
0
8 [报告]
发表于 2008-09-08 17:22 |只看该作者
打印CPU什么信息? brand?

论坛徽章:
0
9 [报告]
发表于 2008-09-08 17:27 |只看该作者
CPU厂家信息

论坛徽章:
0
10 [报告]
发表于 2008-09-08 18:05 |只看该作者
目前已可以打印,但输出效果为“Gen ine nte "(正确的为:GenuineIntel),真奇怪!代码如下:

.MODEL small
.386
.DATA
.CODE
.startup
PUSH EBX;
PUSH EDI;
MOV EAX,0B800H;
MOV ES,EAX;
MOV DI, 15
IMUL DI, 160
MOV CX, 10
SHL CX, 1
ADD DI, CX;
MOV AH,0EH;

MOV EAX,0;
DB 0FH,0A2H;
MOV EAX,EBX;
XCHG EBX,ECX;
MOV ECX,4;


A1:
STOSW;
SHR EAX,8;
LOOP A1;
MOV EAX,EDX;
MOV ECX,4;

A2:
STOSW;
SHR EAX,8;
LOOP A2;
MOV EAX,EBX;
MOV ECX,4;

A3:
STOSW;
SHR EAX,8;
LOOP A3;
POP EDI;
POP EBX;

.exit 0
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP