汇编学习之中断问题
来源:互联网 发布:javascript div 编辑:程序博客网 时间:2024/05/29 13:50
自学进入到最后阶段,将王爽老师的第十二章至第十五章的内容学习完成,再回过头来总结一下关于中断问题的理解。
中断,基本含义是暂停当下正在执行的任务,转而去执行比较急迫需要完成的任务。但是执行的开始是将当前正在执行的指令执行完成,才转而执行中断内容。
根据发出中断请求的出发点,将中断分为内中断和外中断。
内中断是程序内部执行的中断,或者是CPU执行不下去,遇到bug等问题需要采取的措施。内中断类型有四种:
1.除法错误2.单步执行3.into语句4.int指令处理中断的步骤有四步:1.取得中断类型码2.标志寄存器入栈,IF=0,TF=03.CS,IP入栈4.根据类型码设置中断入口地址其中,中断类型码和中断向量表相关联。根据中断类型码可以从中断向量表中获得中断程序的入口地址,继而将入口地址赋给CS和IP。假设中断类型码为N,那么获得中断入口地址为IP = (N * 4),CS = (N * 4 )+2.于此同时,我们可以根据该特性,设置中断程序的重定向,设置新的中断程序,只要将入口地址改为我们编写的程序的入口地址就可以。
常规将自己编写的中断程序存放在00:0200h开始的位置。
另,int指令和iret指令结合使用,类似call 和ret指令,但是多出一步。分别是标志寄存器入栈和标志寄存器入栈出栈操作。
;---------------------------外中断------------------------------
外部中断需要和端口相关联。因此在第十四章专门讲了端口的内容。
CPU可以直接访问的3个地方的数据:
CPU内部寄存器,如AX,BX等内存单元,如DS:[0010]端口(各种接口芯片的寄存器)CPU通过端口和各种接口芯片或者外设进行交互。外部中断来自外部,因此优先级没有内部中断高。由此可分为两类:可屏蔽中断和不可屏蔽中断。但是通过设置cli和sti可以修改外中断的类型。
文章介绍了键盘响应的外中断。通过修改int 9中断程序,可以修改对键盘的响应。外中断比较简单,将实验十五的答案附在下面,不过多解释。
assume cs:codecode segmentdata segmentdw 0,0data endsstart:mov ax,0mov es,axpush cspop dsmov si,offset int9mov di,204hmov cx,offset int9ends-offset int9cldrep movsbpush es:[9*4]pop es:[200h]push es:[9*4+2]pop es:[202h]climov word ptr es:[9*4],204hmov word ptr es:[9*4+2],0stimov ax,4c00Hint 21hint9:push axpush espush bxpush cxin al,60hpushfcall dword ptr cs:[200H]cmp al,9eH;松开A键jne int9retmov ax,0b800hmov es,axmov bx,0mov cx,2000s2:mov byte ptr es:[bx],'A' add bx,2loop s2 int9ret:pop cxpop bxpop espop axiretint9ends:nopcode endsend start
- 汇编学习之中断问题
- 汇编学习--7.16--中断
- 汇编学习--7.16--外中断
- 汇编学习笔记--内中断
- GNU ARM汇编--(五)中断汇编之嵌套中断处理
- GNU ARM汇编--(五)中断汇编之嵌套中断处理
- GNU ARM汇编--(五)中断汇编之嵌套中断处理
- 汇编学习历程(int中断学习)
- 8086汇编学习笔记9-中断
- 汇编学习历程(按键中断劫持)
- 汇编学习历程(键盘中断劫持)
- [汇编学习笔记][第十二章内中断]
- 8086汇编学习笔记9-中断
- 汇编之中断申请(例子)
- 汇编中断知识之INT 1CH
- 汇编中断知识之INT 1CH
- 汇编--学习笔记(十三)-中断及中断处理程序
- 汇编--中断
- Linux C语言操作SQLite数据库
- Typedef 用法总结
- 图像处理:基础(模板、卷积运算)
- viewDidUnload、didReceiveMemoryWarning、dealloc
- 基于TR101-290标准的TS码流三级检测
- 汇编学习之中断问题
- httpclient
- 批量恢复项目文件程序
- 幸福是一种态度英语美文第19篇:超凡卓越的你
- 查看Linux & Android中内存占用方法
- QT命令
- Onvif 设备发现的多网卡选择问题
- 李航:机器学习新动向 从人机交互中学习
- 解决SecureCRT中文显示乱码