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步,修改中断程序
- 8086CPU端口读写
- cpu端口读写
- CPU卡读写
- CPU卡的读写
- WDM初步--端口读写
- 读写键盘端口数据
- 端口的读写(1402)
- 中断与端口读写
- CPU对内存的读写
- CPU卡读写操作函数
- cpu指令如何读写硬盘
- CPU对存储器的读写
- IN,OUT端口读写指令
- 二、cpu对存储器的读写
- CPU对存储单元的读写
- cpu读写数据的大致流程
- 1.7CPU对存储器的读写
- 1.7CPU对存储器的读写
- leetcode 30. Substring with Concatenation of All Words
- HDU 5974 A Simple Math Problem
- Spark 之 一些常用的操作
- 中企动力全面赋能中小企业 让大数据场景化营销落地生花
- CUDA6.5+VS2010安装和搭建过程
- 8086CPU端口读写
- webrtc libjingle worker thread
- HTML与CSS练习——js选择器
- 安卓学习-(数据存储(数据库,原生sql,和原生安卓操作))
- spring_定时任务_spring-task_定时输出
- C语言实现2048小游戏
- 欢迎使用CSDN-markdown编辑器
- USB 中MTP和UMS 模式
- Android Studio 的 gradle 错误