8086CPU端口读写

来源:互联网 发布:面包板入门单片机 编辑:程序博客网 时间:2024/06/10 02:16

CPU可以读取3个地方的数据

1CPU内部寄存器

2内存单元

3端口

端口读写指令:in 读取  out 写入,注意:在int ,out 指令中,只能通过ax和al来存放端口的数据和把数据写入端口,访问8位端口用al,16位用ax

8086对应的是外设端口,外设提供端口给CPU访问,通过访问端口来操作外设

例子:int al,60h 从60h端口中读取一个字节数据到al中

   out 60h,al     向60h端口写入一个字节数据al


COMS RAM芯片

其中包含一个实时钟和一个有128存储单元的RAM存储器,在128字节的RAM中,内部实时钟占0-0dh单元保存时间信息,其余大部分分单元用于保存系统配置信息,供系统启动BIOS程序读取

BIOS提供了相关程序,使我们开机时配置COSRAM中的系统信息

RAM芯片内部有2个端口,端口地址为70h和71h通过这两个端口读写CMOSRAM,

70H为地址端口,存放CMOS RAM的单元地址

71H为数据端口,存放从选定的CMOS RAM单元中读取的数据或者要写入的数据

CPU对CMOS RAM读写分两步  例如:读取CMOS RAM2号单元的数据

1 将2送入单元70h地址端口

2 从71h数据端口读出2号单元的内容



shl指令

shl指令:逻辑左移指令,功能:

1将一个寄存器或内存单元中的数据向左移位

2 将最后移出的一位写入CF中

3将最低位用0补充


如果移动的位数大于1,把移动的位数放入cl中

例子 :mov al,10010001

   shl al,1将al左移1位

   mov cl,3

   shl al,cl将al左移3位


shr指令:逻辑右移指令和左移动指令shl相反




外中断

内中断由CPU内部引发的中断信息

外中断由CPU外部设备引发的中断信息,例如键盘



外中断源有两类:1 可屏蔽中断,2 不可屏蔽中断

1 可屏蔽中断:可屏蔽中断CPU可以屏蔽,CPU通过IF标志位是判断是否响应中断,IF=1,CPU响应中断,IF=0,不响应可屏蔽中断所引发的中断过程,出来和在第一步实现方式上和内中断不同,其他基本和内中断中断过程相同,因为外中断的中断类型码是由数据总线送入CPU的,而内中断的中断类型码是由CPU内部产生的

2 不可屏蔽中断:不可屏蔽中断是CPU不可屏蔽,必须执行,固定的中断类型码是2,所以不需要取中断类型码,其他步骤和内中断一样


设置IF的指令:sti(把IF设置为1)cli(把IF设置为0)


键盘外中断过程:由键盘产生的外中断(可屏蔽中断)

1键盘芯片产生扫描码

2扫描码送入60h端口

3一旦侦测到60h端口有动静,引发9号中断

4CPU执行9号中断例程,处理键盘输入

注意:前三步是硬件系统自动完成的,能修改只有第4步,修改中断程序



原创粉丝点击