中断
- 中断是由于软件的或者硬件的信号, 使 CPU 暂停当前任务, 转而去执行另一段子程序.
- 分类:
- 硬中断 (外中断): 由外部设备(网卡, 硬盘)引发的
- 软中断(内中断): 由执行中断指令引发的.
- 可以通过指令 int n 产生中断
- n 是中断码, 内存中有一张中断向量表, 用来存放中断码对应中断处理程序的入口地址,
- CPU 在接收到中断信号后, 暂停当前正在执行的程序, 跳转到中断码对应的中断向量表地址处, 去执行中断处程序.
- 常见中断
- int 10h 用于执行 BIOS 中断
- int 3 断点中断, 用于调试
- int 21h 返回 AH 寄存器存储功能信号
DOS 系统功能调用
- 由DOS 提供的一组实现特殊功能的子程序供程序员调用.
- 涉及屏幕显示, 文件管理, IO 管理等
- 每个子程序都有一个功能号, 所有的功能调用格式都是一致的.
- 系统功能号送到寄存器 AH 中;
- 入口参数送到指定的寄存器中;
- 用 int 21H 指令执行功能调用 ;
- 根据出口参数分析功能调用执行情况;
栈
- LIFO (后进先出)
- SS(stack segment)栈段寄存器, SS:SP 指向栈顶元素
- push(入栈), pop (出栈)
Loop 指令
- loop 指令和 cx 寄存器配合使用, 用于循环操作类似 for while
- 使用格式
mov cx ,循环次数
循环执行程序代码
loop 标号
- loop 执行流程
- 现将 cx 寄存器的值 - 1, cx = cx-1;
-
- 判断 cx 的值,
- 如果 cx 值不为0, 执行标号的代码, 重复1
- 如果为0, 执行 loop 后面的代码
8086 伪指令
- db(define byte)自定义字节
- dw(define word)自定义字
网友评论