第十四章 端口
端口的读写
端口地址可以通过地址总线来传送,在PC系统中,CPU最多可以定位64KB个不同的端口。端口地址范围:0~65535。
端口只有两条读写指令:in和out
(1)访问内存:mov ax,ds:[8] (ds)=0
① CPU通过地址线将地址信息8发出;
② CPU通过控制线发出内存读命令,选中存储芯片,并通知,将要从中读取数据;
③ 存储器将8号单元中的数据通过数据线送入CPU
(2)访问端口:in al,60h ;从60号端口读入一个字节
① CPU通过地址线将地址信息60h发出;
② CPU通过控制线发出端口读命令,选中端口所在芯片,并通知,将从中独去数据;
③ 端口所在的芯片将60h端口中的数据通过数据线送入cpu。
注意:在in和out指令中,只能使用ax或al来存放从端口中读入的数据或要发送到端口中的数据。访问8位端口用al,访问16位端口用ax。
CMOS RAM芯片
CMOS芯片特征:
1.包含一个实时钟和一个有128个存储单元的RAM存储器。
2.靠电池供电,关机后时钟仍可正常工作,ram中信息不丢失。
3.128个字节的RAM中,内部实时钟占用0~0dh单元来保存时间信息,其余大部分用于保存系统配置信息。
4.内部有两个端口,地址为70h和71h。CPU通过这两个端口来读写CMOS RAM。
5.70h为地址端口,存放要访问的CMOS RAM单元的地址;71h为数据端口,存放从选定的CMOS RAM单元中读取的数据,或者要写入的数据。
检测点14.1
(1)
mov al,2
out 70h,al
in al,71h
(2)
mov al,2
out 70h,al
mov al,0
out 71h,al
shl和shr指令
shl:逻辑左移指令,shl al,1功能:
1.将一个寄存器或内存单元中的数据向左移位;
2.将最后移出的一位写入CF中;
3.最低为用0补充。
如果移动位数大于1时,必须将移动位数放在cl中
shr:逻辑右移指令,shr al,1功能:
与shl相反
检测点14.2
push ax
shl ax,1
pop bx
mov cl,3
shr bx,cl
add ax,bx