数据传送方式
-
程序控制方式
-
中断方式
-
DMA方式
中断传送方式
避免因反复查询外部设备的状态而浪费时间,从而提高CPU的效率。
非屏蔽中断
非屏蔽中断不受中断允许标志IF的屏蔽,系统中只能有一个非屏蔽中断,其中断类型号为2。
中断过程
-
PUSH (FLAGS) -
IF<-0TF<-0AC<-0 -
PUSH (CS)PUSH (IP) -
(IP)<-(N*4)(CS)<-(N*4+2)
中断指令
INT,不给中断号的话,默认是3号中断
STI,设置中断允许位(IF=1)
CLI,清除中断允许位(IF=0)
中断向量表
各类型中断处理程序的入口地址表,其存放在内存低位处,每项占用4个字节,低位是(IP),高位是(CS)。
每类中断向量的偏移地址可由中断类型号N乘以4计算出来。
子程序与中断的区别
两者实现机制不同
-
中断程序是固定的(如果操作系统允许,程序员可以修改);
而子程序是程序员动态编写的。
-
call func,根据func直接找到子程序入口,根据需求修改(IP)和(CS);而
int 21h需要计算地址,通过中断向量表找到中断处理程序入口地址。
BIOS、DOS中断
BIOS中断和DOS中断是两种特殊的中断。
BIOS比DOS更靠近硬件。
在某些情况下,既可选择DOS中断又可选择BIOS中断实现相应功能;某些情况下,必须使用BIOS才能实现相应的功能。
基本步骤
- 将调用参数装入指定寄存器中
- 如需功能号,将其装入
AH - 如需子功能号,将其装入
AL - 按中断号调用DOS或BIOS中断,
INT 21H
DOS常用功能
1号功能
-
功能号
(AH)=1 -
功能
从键盘输入一个字符并回显在屏幕上
-
返回参数
(AL)=字符
2号功能
-
功能号
(AH)=2 -
功能
显示一个字符(检验Ctrl_Break),光标随字符移动
-
调用参数
(DL)=字符
9号功能
-
功能号
(AH)=9 -
功能
显示字符串,光标跟随字符移动
-
调用参数
(DS):(DX)为串地址,串必须以$结束
0A号功能
-
功能号
(AH)=0AH -
功能
输入字符到缓冲区,缓冲区第一个字节保存最大字符数,第二个字节保存实际输入的字符数
-
返回参数
(DS):(DX)为缓冲区首址
常用ASCII码
| 字符 | 十六进制ASCII码 |
|---|---|
| 空格 | 20H |
0 | 30H |
A | 41H |
a | 61H |
| 换行 | 0AH |
| 回车(归位) | 0DH |
本文详细介绍了计算机中的数据传输方式,包括程序控制、中断和DMA,并重点讲解了中断传输方式及其优势。非屏蔽中断作为特殊类型,不受IF标志屏蔽。中断过程包括标志寄存器保存、中断向量表寻址等步骤。此外,还对比了中断与子程序的区别,并探讨了BIOS和DOS中断的使用场景。最后,列举了DOS常用功能及其调用方法和ASCII码表。
1179

被折叠的 条评论
为什么被折叠?



