- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* (1) INT n 格式: INT n 说明:CPU根据n的值计算出中断向量的地址,该地址放在内存的固定位置 n×4 = 向量地址。该向量地址中的内容即为中断服务程序入口地址(段:偏移),入口地址也称为“中断向量”。 0000 : n×4 XXH XXH YYH YYH 中断服务程序入口的偏移地址(IP) 中断服务程序入口的段地址(CS) 中断类型码 n = 0~255 内存 中断向量 * INT指令的操作: 将FLAGS压入堆栈; 将INT指令下一条指令的地址压栈(即把CS和IP的内容压栈); 取中断服务程序入口地址送入CS和IP。 INT指令只影响IF(中断允许标志)和TF(跟踪标志), 对其余标志位无影响 INT指令可用于调用系统服务程序,如INT 21H * INT指令的操作例: INT 21H IPL IPH CSL CSH SP=1200 FLAGSL FLAGSH SP=11FA 执行INT 21H指令后 保护断点 堆栈 执行INT 21H指令前 * INT指令的操作例(续): 执行INT 21H指令后, CS=? IP=? 因为n=21H,所以n×4=84H。 下图中,(0:0084H)=2000H:1123H 所以: CS=2000H IP=1123H 0000:0084H 23H 11H 00H 20H IP CS 0000 : 21H×4 * INTO检查溢出标志OF,如果OF=1,则启动一个类型4的中断过程;如果OF=0,不做任何操作。 通常INTO指令安排在有符号数算术运算指令后面。如 IMUL DX INTO ;若溢出,则启动INT 4, 否则往下执行 MOV RESULT,AX MOV RESULT+2,DX …… (2)溢出中断INTO * 用于从中断服务程序返回被中断的程序。IRET负责恢复断点(CS和IP)和恢复标志寄存器内容。 任何中断服务程序不管是外部中断引起的,还是内部中断引起的,最后都要用IRET返回。IRET指令执行的操作为: ?栈顶内容弹出到IP ?栈顶内容弹出到CS ?栈顶内容弹出到FLAGS (3)中断返回指令IRET * 3.3.6 处理器控制指令 1.标志操作指令 用来设置标志位的状态。 (1)CF设置指令 CLC 0→CF STC 1→CF CMC CF变反 (2)DF设置指令 CLD 0→DF (串操作的指针移动方向从低到高) STD 1→DF (串操作的指针移动方向从高到低) (3)IF设置指令 CLI 0→IF (禁止INTR中断) STI 1→IF (开放INTR中断) * 执行HLT指令时,CPU进入暂停状态,设置该指令通常是为了等待中断。 外部中断(包括IF=1时的可屏蔽中断请求INTR及非屏蔽中断请求NMI)或复位信号可让CPU退出暂停状态。 HLT不影响标志位。 2. 外部同步指令 (1)暂停指令HLT * (2)空操作指令NOP NOP指令不做任何实质性的操作,但占用3个时钟周期,然后执行下一条指令。 多用于延时或预留存储空间(占位子)。 * 3.3.5 程序控制指令 程序控制指令分为: 转移指令 循环控制指令 调用和返回指令 中断指令 * 使程序转移到指定的目标地址,并从该地址开始执行新的程序段。 转移指令的实质:改变IP(或CS)的内容。 所有转移指令不会影响标志位。 分为无条件转移和条件转移两种。 1.转移指令 * (1) 无条件转移指令 - JMP 本指令无条件转移到指定的目标地址,以执行从该地址开始的程序段。根据设置CS、IP的方法,JMP指令分成4种情况。 ① 段内直接转移: JMP disp 指令中给出的8/16位的位移量加到IP。CS保持不变。 ② 段内间接转移: JMP reg/mem reg/mem中的16位偏移地址送IP。CS保持不变。 ③ 段间直接转移 JMP segment:offset 指令中给出的16位的段和16位的偏移地址送到CS和IP。 ④ 段间间接转移 JMP mem32 mem32中的16位的段和16位的偏移地址送到CS和IP。 * 转移的目标地址由指令直接给出。指令中给出的目标地址实际上是一个相对于IP的位移量: 位移量 转移范围 汇编语言中格式
文档评论(0)