Chinaunix首页 | 论坛 | 博客
  • 博客访问: 497316
  • 博文数量: 161
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1947
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-25 01:20
文章分类

全部博文(161)

文章存档

2011年(44)

2010年(47)

2009年(48)

2008年(22)

我的朋友

分类:

2009-08-28 23:15:18

端口
cpu通过总线相连的芯片除存储器外,还有以下3种
1各种接口卡, 他们控制接口卡进行工作
2主板的接口芯片,cpu通过他们对部分外设进行访问
3其他芯片,用来存储相关的系统信息,或进行相关的输入输入处理

这些芯片中,都有一组可以由cpu读写的寄存器,这些寄存器,在物理上可能处于不同的芯片,但有两个相同点
1,都和cpu总线相连
2cpu对他们的读写的时候都通过控制线向他们所在的芯片发出端口读写命令
可见从cpu的角度,将这些寄存器当作端口,对他们统一编制,从而建立了一个统一的端口地址空间,每个端口在地址空间种都有一个地址
cpu可以直接读写的3个地方的数据
cpu内部寄存器
内存单元
端口

2>
端口的读写
cpu通过地址定位端口 ,所以端口地址和内存地址一样,通过地址总线来传送
pc系统种,最多64K个端口,端口地址范围0=65535
访问端口
in al,60h ;从60号端口读入一个字节
cpu通过地址线将地址信息60h发出
cpu通过控制线发出端口读命令,选中端口所在的芯片,并通知它,将要从种读取数据
端口所在芯片将60h端口种的数据通过数据线送入cp
注意:
int out指令,只能使用ax,al来存放从端口读入的数据或要发送到端口的数据
0-255以内端口
in al,20h , 从20端口读写一个字节
out 20h,al
256-65535端口读写
mov dx, 3f8h
in al, dx
out dx,al

3>
cmos ram芯片
现在包含一个实时钟+128个存储单元
靠电池供电
128B中,内部时钟占0-0dh保存时间信息
       其余大部分保存系统配置信息
该芯片有两个端口,地址
70h:地址端口
71h:数据端口
cpu对cmos的读写分两步
例如:读cmos ram的2号单元
将2送人地址端口70h
从数据端口71h读出2号单元的内容

4>
shl shr指令
逻辑移位
shl逻辑左移
功能:
将一个寄存器或内存单元的数据向左移位
将最后移出的一位写入cf
最低位用0补充
mov al,01001000b
shl al,1 ;将al中的数据左移1位
执行后(al)=10010000b cf=0
注意:
如果移动位数>1,将移动位数放在cl中
shl al,cl

shr右移(shift right)
将一个寄存器或内存单元的数据向右移位
将最后移出的一位写入cf
最高位用0补充
如果移动位数>1,将移动位数放在cl中
shr al,cl
5>
cmos存储的时间信息
mov al,8
out 70h,al ;向cmos ram  70h地址端口写入8号单元
in al ,71h  ;从cmos ram 71数据端口读出8号单元内容
 
 
 
 
 
 
阅读(816) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-06-05 02:17:43

大连法律咨询在线 http://www.fabowang.com 大连律师在线咨询 http://www.fabowang.com 大连法律顾问网 http://www.fabowang.com 大连律师咨询 http://www.fabowang.com