- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统开发系列文章(二)
CMOS
[题记]源于恐惧,借口忙碌,始终没下手。自今开始,已经有始,希望有终。作为亚专业,谬误之处,盼斧正。
CMOS,你在哪?
CMOS芯片在主板上的位置:
CMOS芯片
CMOS芯片
Cmos,你的仓库存的啥?
基本情况:
仓库名称:CMOS芯片
仓库大小:128字节(byte)
存储单位:1byte
存储资源:(见下表)
CMOS_RAM存储器偏移地址及存储内容
ADDR
ADDR
CONTENT
DESC
ADDR
CONTENT
DESC
00
Time_seconds
时间。秒
16
Base_memory(low)
基本内存(低)
01
Alarm_second
闹钟。秒
17
Extend_memory(hign)
扩展内存(高)
02
Time_minutes
时间。分
18
Extend_memory(low)
扩展内存(低)
03
Alarm_minutes
闹钟。分
19
Hard disk type(c:)
硬盘类型(C)
04
Time_hours
时间。时
1A
Hard disk type(d:)
硬盘类型(D)
05
Alarm_hours
闹钟。时
1B
(reserved)
(保留)
06
Date_day of week
日期。周几
1C
Suppervisor pwd
超用户密码
07
Date_day
日期。日期
1D
Suppervisor pwd
超用户密码
08
Date_month
日期,月份
1E-2D
(reserved)
(保留)
09
Date_year
日期。年份
2E
Cmos_checksum(hign)
总验(高)
0A
Status register A
寄存器A状态
2F
Cmos_checksum(low)
总验(低)
0B
Status register B
寄存器B状态
30
Extend_memory(high)
扩展内存(高)
0C
Status register C
寄存器C状态
31
Extend_memory(low)
扩展内存(低)
0D
Status register D
寄存器D状态
32
Date_century
日期(世纪)
0E
Diagnotic status
诊断状态
33
Power on_state
电源状态
0F
Shutdown status
关闭状态
34-3F
(reseved)
(保留)
10
Soft_driver_type
软驱类型
40-5F
Extend cmos
CMOS扩展
11-13
(reserved)
(保留)
60
User pwd
用户密码
14
Equipment installed
安装设备
61
User pwd
用户密码
15
Base_memoery(hign)
基本内存(高)
62-7F
Extend cmos
CMOS扩展
从CMOS仓库货位来说,共有如下几类信息:
系统日期时间(00H-09H,32H);
状态信息(0AH-0FH,33H);
软硬驱类型(10H,19H,1AH);
内存及扩展内存信息(15H-18H,30H-31H);
用户密码(1CH-1DH,60H-61H)。
Cmos,如何存取你的数据?
1.两个端口:
地址口:端口号:0X70,只写端口,接收数据为CMOS数据偏移地址。
数据口:端口号:0X71,读写端口,收存数据类型为字节。
如何存取:
2.取数据:
_cmos_read:
_cmos_read: // char _cmos_read(unsigned char addr)
OUT 0X70, [esp+4] //要取哪里的数据
IN AL, 0X71 //取数据到AL寄存器
3.存数据:
_c
_cmos_write: //char _cmos_write(unsigned char addr, unsigned char data)
OUT 0X70, [esp+4] //要取哪里的数据
OUT 0x71, [esp+8] //存数据到数据端口
Cmos,你能给我们提供哪些服务?
系统时间
系统时间
状态信息
盘类型
内存信息
用户密码
CMOS服务
getSystemTime
setSystemTime
getDevInstallI
getDiskType
getMemTotal
getMemBase
getMemExtend
getSupperPWD
setSupperPWD
getUsrPWD
setUsrPWD
Cmos,api封装
硬件操作用汇编语言,API封装用C语言.两个文件分别为cmos.nas,cmos.c,其中cmos.c引用cmos.h
说
文档评论(0)