摘要:
使用BIOS进行键盘输入和磁盘读写 我们通过讨论键盘输入和磁盘读写来理解CPU对I/O的控制。 BIOS键盘缓冲区 键盘输入会引发9号中断,CPU会执行中断例程,从60h端口读出扫描码,然后将其转换为对应的ascii码信息,将扫描码和对应的ascii码存入内存中的指定空间中,这个空间一般是键盘缓冲区 阅读全文
摘要:
直接定址表 数据标号 之前我们使用的标号形式: 这个标号仅仅代表内存单元的地址。 我们还可以使用同时描述内存地址和单元长度的标号,即数据标号(没有冒号),如: 它代表a之后的单元都是字节单元,b之后的单元都是字单元。当指令中出现标号a或b的时候,会同时代表地址和单元长度信息,如果出现字节匹配字的情况 阅读全文
摘要:
外中断 可屏蔽中断与不可屏蔽中断 CPU除了能执行指令运算以外,还需要对外部设备进行控制,接受它们的输入,或者向它们输出,也就是I/O能力。CPU通过端口与外部设备进行联系,无论是发送和接受数据,还是输出控制命令,都是先将数据和指令送入相关芯片的端口中,然后再通过芯片对外设进行控制,或者传输到CPU 阅读全文
摘要:
端口 在PC系统中,和CPU通过总线相连的芯片除了各种存储器外,还有以下三种芯片: 1、各种接口卡(如显卡、网卡)上的接口芯片,它们控制接口卡进行工作 2、主板上的接口芯片,CPU通过它们对部分外设进行访问 3、其他芯片,用来存储相关的系统信息,或进行相关的输入输出处理 这些芯片中都有一组可以由CP 阅读全文
摘要:
int指令 int指令也可以引发内中断。 int指令的格式是: 其中n为中断类型码。 相当于执行以下步骤: 1、取到中断类型码n 2、标志寄存器入栈,IF=0,TF=0 3、CS、IP入栈 4、根据中断向量表修改CS和IP:(IP)=(n 4),(CS)=(n\ 4+2) 可见int指令的最终功能就 阅读全文
摘要:
内中断 CPU可以在执行完当前正在执行的指令之后,检测到从CPU外部或内部产生的一种特殊信息,并且可以立即对所接受到的信息进行处理。这种特殊信息一般称其为中断信息。中断就是CPU不再接着刚执行完的指令向下执行,而是转而去处理这个特殊信息。 内中断的产生 从CPU内部产生的中断信息被称为内中断。当下列 阅读全文
摘要:
标志寄存器 CPU内部有一种特殊的寄存器名为标志寄存器,它有以下几种作用: 1、存储相关指令的某些执行结果 2、为CPU执行相关指令提供行为依据 3、控制CPU的相关工作方式 8080CPU中的标志寄存器是flag,它有16位,其中存储的信息通常被称为程序状态字PSW,这种寄存器的每一位都有含义,它 阅读全文
摘要:
CALL和RET指令 call和ret指令都是转移指令,它们经常被共同用来实现子程序的设计。 ret和retf ret指令用栈中的数据实现修改IP的内容,从而完成近转移,执行ret指令时相当于执行: retf指令用栈中的数据实现修改CS和IP的内容,从而完成远转移,执行retf指令相当于执行: 在程 阅读全文
摘要:
转移指令的原理 可以修改IP,或同时修改CS和IP的指令统称为转移指令。 转移行为有很多种不同的分类方法: 根据只修改IP和同时修改CS和IP,可以分为段内转移(jmp ax)和段间转移(jmp 1000:0) 根据指令对IP的修改范围不同,段内转移又分为短转移(IP的修改范围为 128 127)和 阅读全文
摘要:
数据处理的两个基本问题 数据处理时所有CPU都要面临两个基本问题: 1、要处理的数据在什么地方? 2、要处理的数据有多长? 我们可以定义两个描述性符号reg和sreg,reg代表一个寄存器,sreg代表一个段寄存器。 reg的集合包括:ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh 阅读全文