cmos

CMariner 2004-11-25 04:17:15
谁能给一个备份CMOS的程序
...全文
145 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
carroty 2004-11-26
  • 打赏
  • 举报
回复
牛!
大熊猫侯佩 2004-11-26
  • 打赏
  • 举报
回复
[转贴]

CMOS是一个128字节大小的储存区, 它存放了有关机器BIOS配置的重要信息,而BIOS内有CMOS的设置程序.基于IBM PC的机器分配了70H和71H端口给CMOS,通过这两个端口我们可以访问或者修改CMOS的配置信息.访问70H,确定访问CMOS的地址(0H-80H),然后通过向已确定后的CMOS地址来访问71H数据端口,从而达到访问或者修改CMOS内数据的目的.而汇编程序正是对CMOS访问或者修改的最佳选择,以下两个程序cmos.exe和restore.exe即是用汇编语言写出来的,cmos.exe是备份你的cmos配置程序,restore.exe是恢复你所备份cmos的程序.

;***********************************************
;this is cmos asm file,it could backup your cmos
;***********************************************
title first
data segment
na db 'cmos.dat',0
buffer db 80H dup(?)
handle dw ?
data ends
code segment
assume ds:data,cs:code
main proc far
start: push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov cx,0
lea bx,buffer
mov ax,0
get: out 70H,al ;get your cmos configuration(得到你的cmos配置信息)
in al,71H
mov [bx],al
inc cx
inc bx
mov ax,cx
cmp cx,80H
jb get
mov ah,3cH ;create a new file(调用int21H新建一个文件)
lea dx,na
mov cx,20H
int 21H
mov handle,ax
mov ah,40H ;write to the new file(调用int21H向这个文件写cmos的配置信息)
mov bx,handle
lea dx,buffer
mov cx,80H
int 21H
ret
main endp
code ends
end start
http://www.acnow.net/ giWcCdiO

http://www.acnow.net/ giWcCdiO
;***************************************************
;this is restore asm file,it could restore your cmos
;***************************************************
title restore
data segment
na db "cmos.dat",0
buffers db 80H dup(?)
data ends
code segment
assume cs:code,ds:data
main proc far
begin: push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
lea dx,na ;get the file handle and open the file(得到cmos.dat文件的文件号后,打开该文件)
mov al,0
mov ah,3dH
int 21H
mov bx,ax ;read the file(读文件内容)
mov cx,80H
mov ah,3fH
lea dx,buffers
int 21H
mov cx,0
mov ax,0
lea bx,buffers
write: out 70H,al ;restore cmos (恢复cmos的配置)
mov ax,[bx]
out 71H,al
inc cx
inc bx
mov ax,cx
cmp cx,80H
jb write
ret
main endp
code ends
end begin

这两个程序在我的AWARD BIOS的机上调试通过,支持目前大多数IBM兼容PC机.我用masm编译器得到了cmos.exe,restore.exe两个可执行文件.必须注意的是,当你运行cmos.exe之后,在程序所在的目录下得到了一个128字节的cmos.dat文件,这个文件既是CMOS的配置文件,这个文件是个二进制文件,需要用二进制编辑器如winhex来查看,可以很方便得查看cmos的配置.运行恢复程序restore.exe程序时,需要将cmos.dat文件拷贝到restore.exe程序所在的目录.如果大家没有汇编编辑器可以到我的网站去下载(http://owlbird.xiloo.com/download.htm),提供了汇编编辑器及已编译好的程序. 请注意:在windowsNT,windows2000下,很多直接访问cmos程序都无法使用,原因在于WindowsNT的DOS是模拟的,禁止对CMOS写入.

现成的程序可到 http://cltools.51.net/clt_soft.htm 下载。
wxf0204 2004-11-26
  • 打赏
  • 举报
回复
呵呵,楼主的意思到底是什么?你想干什么啊?
zhhoooo 2004-11-25
  • 打赏
  • 举报
回复
这个问题实在是太含糊了

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧