版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序控制程序控制类类指令指令转移指令循环控制子程序调用中断控制3.9 转移指令转移指令 通过修改指令的通过修改指令的偏移地址偏移地址或或段地址及偏移地段地址及偏移地址址实现程序的转移实现程序的转移无条件转移指令 无条件转移到目标地址,执行新的指令有条件转移指令 在具备一定条件的情况下转移到目标地址无条件转移指令无条件转移指令n格式:n JMP OPRD目标地址目标地址与与JMP在在同一代码段同一代码段与与JMP不在不在同一代码段同一代码段原则上可实现在整个内存空间的转移原则上可实现在整个内存空间的转移无条件转移指令无条件转移指令 段内转移段内转移转移的目标地址在当前代码段内指令中直接给指令中直
2、接给出目标地址出目标地址由指令中的寄存器由指令中的寄存器或存储器操作数指或存储器操作数指出目标地址出目标地址段内直接寻址段内直接寻址段内间接寻址段内间接寻址无条件段内转移无条件段内转移n段内直接寻址n JMP Label近地址标号近地址标号位移量位移量下一条要执行指令的下一条要执行指令的偏移地址偏移地址=当前当前IP+位移量位移量JMPLabel代代码码段段无条件段内转移无条件段内转移n段内间接寻址 JMP BX JMP WORD PTRBXJMP代代码码段段数数据据段段BX=1200XXHXXHIP指令码指令码无条件转移指令无条件转移指令段间转移段间转移转移的目标地址不在当前代码段内指令中直
3、接给指令中直接给出目标地址出目标地址由指令中的由指令中的32位存位存储器操作数指出目储器操作数指出目标地址标地址段间直接寻址段间直接寻址段间间接寻址段间间接寻址无条件段间转移无条件段间转移n段内直接寻址 JMP FAR Label远地址标号远地址标号JMPLabel代代码码段段1Label与与JMP之间之间的位移量的位移量代代码码段段2XXHXXHXXHXXHIPCS无条件段间转移无条件段间转移n段内间接寻址 JMP DWORD PTRBXXXHXXHXXHXXHBXIPCSJMP指令码指令码代代码码段段1代代码码段段2数数据据段段条件转移指令条件转移指令n在满足一定条件下,程序转移到目标地址
4、继续执行n条件转移指令均为段内短转移,即转移范围为: -128+127条件转移指令的应用1)简单条件(直接标志)转移指令(共)简单条件(直接标志)转移指令(共10条)条) 根据根据CF、ZF、SF、OF、PF分别为分别为1或或0,共有,共有10种状态,种状态,设置了设置了10种转移指令:种转移指令: JE/JZ JS JO JC JP ;标志为;标志为1转移转移 JNE/JNZ JNS JNO JNC JNP ;标志为;标志为0转转2)用于无符号数的条件转移指令)用于无符号数的条件转移指令 JA/JNBE ;高于;高于/不低于等于转移,不低于等于转移,CFZF0 JNA/JBE ;不高于;不高
5、于/低于等于转移,低于等于转移,CFZF1 JB/JNAE ;低于;低于/不高于等于转移,不高于等于转移,CF1 JNB/JAE ;不低于;不低于/高于等于转移,高于等于转移,CF03)用于带符号数的条件转移指令)用于带符号数的条件转移指令 JG/JNLE 大于大于/不小于等于转移,(不小于等于转移,(SF OF) ZF0 JGE/JNL 大于等于大于等于/不小于转移,(不小于转移,(SF OF)0 JL/JNGE 小于小于/不大于等于转移,(不大于等于转移,(SF OF)1 JLE/JNG 小于等于小于等于/不大于转移,(不大于转移,(SF OF) ZF1 转移指令例n统计内存数据段中以TA
6、BLE为首地址的100个8位符号数中正数、负数和零元数的个数。转移指令例(流程图)将存放各元素个将存放各元素个数的单元清零数的单元清零取首地址取首地址设串长度设串长度取一个字节数取一个字节数正数个数加正数个数加1零元素加零元素加1为负?为负?为零?为零?负数个数加负数个数加1NYNY3.10 循环控制指令循环控制指令n控制程序在以当前IP为中心的-128+127范围内循环执行n循环次数由CX寄存器指定 LOOP LOOPZ LOOPNZ无条件循环指令无条件循环指令n格式: LOOP LABELn循环条件: CX 0n操作: DEC CX JNZ 符号地址条件循环指令条件循环指令n格式: LOO
7、PZ LABEL LOOPE LABELn循环条件: CX 0 ZF=1l格式:格式: LOOPNZ LABEL LOOPNE LABELl循环条件:循环条件: CX 0 ZF=0例:在一个由例:在一个由17个字符组成的字符串个字符组成的字符串STRING中,现中,现在查找该字符串中是否包含空格字符(其在查找该字符串中是否包含空格字符(其ASCII码为码为20H),若未找到或尚未查完,则继续查找,直到找),若未找到或尚未查完,则继续查找,直到找到第一个空格字符或查完了才退出循环。到第一个空格字符或查完了才退出循环。STRING DB Personal Computer MOV BX,OFFSE
8、T STRING DEC BX MOV CX,17 NEXT: INC BX CMP BX,BYTE PTR 20H LOOPNE NEXT 方法二:方法二: MOV DI,OFFSET STRING MOV AL,20H MOV CX,17 REPNE SACSB JZ NEXT JMP NFOUND NEXT: NFOUND:3.11 子程序调用返回指令子程序调用返回指令段内调用段间调用段内直接调用段内直接调用段内间接调用段内间接调用段间直接调用段间直接调用段间间接调用段间间接调用调用指令与转移指令的比较调用指令与转移指令的比较n用于调用一个子过程n调用前须保护断点地址n子过程执行结束后要
9、返回原调用处继续执行原程序断点恢复断点恢复段内调用段内调用n子过程与原调用程序在同一代码段,在调用之前只需保护断点的偏移地址n格式: CALL NEAR PROC近过程名近过程名断点断点入口入口地址地址段内调用例段内调用例nCALL TIMREnCALL WORD PTRSI直接调用直接调用间接调用间接调用段间调用段间调用n子过程与原调用程序不在同一代码段,在调用之前需保护断点的段基地址和偏移地址。先将断点的CS压栈,再压入IPn格式: CALL FAR PROC段间调用例段间调用例nCALL FAR TIMREnCALL DWORD PTRSI段间调用例n格式: CALL FAR PROCn
10、格式例:CALL FAR TIMRECALL DWORD PTRSIXXHXXHCALL代代码码段段数数据据段段SIXXHXXHCSIP返回指令返回指令n从堆栈中弹出断点地址,返回原程序n格式: RETnRET指令一般位于子程序的最后3.12中断指令中断指令中断与过程调用:n中断是随机事件或异常事件引起,调用则是事先已在程序中安排好 n响应中断请求不仅要保护断点地址,还要保护PSW内容n调用指令在指令中直接给出子程序入口地址,中断指令只给出中断向量码,入口地址则在向量码指向的内存单元中1. 中断指令n格式: INT nn说明: n4中断类型码中断类型码n=0 255n 4 XXHXXHXXHX
11、XH入口的段地址入口的段地址入口的偏移地址入口的偏移地址存放中断服务子程序入口存放中断服务子程序入口地址的单元的偏移地址地址的单元的偏移地址代代码码段段数数据据段段该单元在数据段,段地址该单元在数据段,段地址=DS中断指令的执行过程n将PSW压入堆栈;n将INT指令的下一条指令的CS、IP压栈;n由n4得到存放中断向量的地址;n将中断向量(中断服务程序入口地址)送CS和IP寄存器;n转入中断服务程序。中断指令的执行过程n4 22H11H00H67HIPCS68122HMOV代代码码段段数数据据段段堆堆栈栈段段SPFLAGSHFLAGSLIPHCSLCSHIPLSPSPSP中断指令例执行程序段: CS IP 6200H:0110H INT 21H6200H:0112H MOV AX,BX 12H01H00H62HSP=1200PSWLPSWHSP=11FA执行执行INT指令后指令后堆堆栈栈段段中断指令例n执行INT 21H指令后 IP=21H4 CS=(21H4)+20084H 23H11H00H20HIP CS数数据据段段代代码码段
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理与绩效考核
- 2025年甲醇燃料船舶动力系统安全操作规程
- 四川内江市第六中学2025-2026学年八年级下学期5月期中道德与法治试题(含答案)
- 甘肃省兰州市2025-2026学年部编版九年级历史下学期阶段性学业水平检测题(含答案)
- 乙腈装置操作工创新思维考核试卷含答案
- 城市轨道交通设备调度员安全素养能力考核试卷含答案
- 乳品配料工岗前技能掌握考核试卷含答案
- 2026年新科教版高中高一化学上册第一单元物质的量浓度计算卷含答案
- 理货员安全生产能力考核试卷含答案
- 制苯装置操作工班组协作水平考核试卷含答案
- 江苏省2026年中职职教高考文化统考数学试卷及答案
- 26年类器官药敏联合基因检测用药
- 2026年西安建筑科技大学《绿色建筑学报》编辑部招聘(3人)笔试参考题库及答案解析
- 2026年北京市东城区高三二模生物试卷(含答案)
- 2026滁州市轨道交通运营有限公司第一批次校园招聘21人备考题库及完整答案详解一套
- T/CSMTNY 003-2026管输掺氢天然气质量分析与流量计量技术指南
- (2026年)压疮的预防及护理课件
- 2026届广西南宁市4月高中毕业班质量调研英语试卷(含答案无听力音频无听力原文)
- 侍茄师(雪茄服务师)初级测试题
- 嘉定区家委会工作制度
- 2026届上海市中考化学模拟试卷(含答案解析)
评论
0/150
提交评论