- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章敏控制转移和程序结构
第5章 控制转移和程序结构 5.1 目标地址的寻址方式 程序代码在代码段; CS:指明代码段在主存中的开始位置、即段基地址; EIP:给出将要执行指令的偏移地址; 程序顺序执行,微处理器自动增量EIP;程序控制转移,EIP随之改变; 程序转移到另外的代码段, EIP和CS都将改变; 控制转移类指令:改变EIP(有时CS),即改变程序执行顺序(实现程序控制转移)的指令; 目标地址寻址方式:指明目的地、即目标地址的方法; 5.1.1 转移范围 1. 段内转移 在当前代码段范围内的程序转移; 不需更改CS,只改EIP(偏移地址); 近转移(Near):16位段是16位近转移NEAR16, 32位段是32位近转移NEAR32; 短转移(Short):转移范围在127~-128字节; 2. 段间转移 需要更改CS(段地址)和EIP(偏移地址); 远转移(Far):16位段是32位远转移FAR16, 32位段是48位远转移FAR32; 5.1.2 目标地址寻址方式 1. 相对寻址方式 提供目标地址相对于当前指令指针EIP的位移量; 目标地址(转移后的EIP)=当前EIP+位移量; 相对寻址都是段内转移,最常用、最灵活; 2. 直接寻址方式 直接提供目标地址; 目标地址(转移后的CS和EIP)=指令操作数; 3. 间接寻址方式 由寄存器或存储单元提供跳转地址; 目标地址来自寄存器或存储单元、间接获得; 寄存器间接寻址:用寄存器保存目标地址; 存储器间接寻址:用存储单元保存目标地址; 5.1.3 无条件转移指令JMP JMP label ;程序转向label标号指定的地址; ;有段内相对寻址,段间直接寻址; JMP reg16/reg32 ;程序转向寄存器指定的地址; ;为寄存器间接寻址; JMP mem16/mem32 ;程序转向存储单元指定的地址; ;为存储器间接寻址; JMP指令的4种类型 1. 段内转移、相对寻址 标号指明目标地址,指令代码包含位移量; 2. 段内转移、间接寻址 通用寄存器或主存单元包含目标指令的偏移地址; 3. 段间转移、直接寻址 标号包含目标指令的段地址和偏移地址; 4. 段间转移、间接寻址 16位段用双字存储单元包含目标地址; 32位段用3字存储单元包含目标地址; [例题5-1]无条件转移程序-1 ;数据段 0000 0000 nvar dw ? ;代码段 0010 EB 01 jmp labl1 ;8位位移量 0012 90 nop 0013 B8 FF02 labl1: mov ax,type labl1 0016 E9 0001 jmp near ptr labl2 ;16位位移量 0019 90 nop 001A B8 0020 R labl2: mov ax,offset labl3 ; 001D FF E0 jmp ax 001F 90 nop 0020 B8 002B R labl3: mov ax,offset labl4 0023 A3 0000 R mov nvar,ax 0026 FF 26 0000 R jmp nvar 002A 90 nop 5.2 分支程序结构5.2.1 条件转移指令Jcc Jcc label 根据指定的条件确定程序是否发生转移; 条件满足,发生转移;否则,顺序执行下一条指令; LABEL表示目标地址,采用段内相对寻址方式; 16位CPU:字节位移量(-128~+127短转移); 32位CPU:多字节位移量(达到32位的全偏移量); 条件转移指令不影响标志,但要利用标志; cc表示利用标志判断的条件,16种、两类; 单个标志状态作为条件; 两数大小关系作为条件; 转移条件cc:单个标志状态 JZ/JE ZF=1 Jump if Zero/Equal JNZ/JNE ZF=0 Jump if Not Zero/Not Equal JS SF=1 Jump if Sign JNS SF=0 Jump if Not Sign JP/JPE PF=1 Jump if Parity/Parity Even JNP/JPO PF=0 Jump if Not Parity/Parity Odd JO OF=1 Jump if Overflow JNO OF=0 Jump if Not Overflow JC CF=1 Jump if Carry JNC CF=0 Jump if Not Carry 转移条件cc:两数大小关系 JB/JNAE CF=1 Jump if Below/Not Above or Equal JNB/JAE CF=0 Jump if Not Below/Above or Equal JBE/J
您可能关注的文档
最近下载
- 新版VDA6.3-2023过程审核精品教程(培训课件).pptx VIP
- 2025贵州黔东南州凯里市选聘城市社区工作者150人备考练习试题及答案解析.docx VIP
- 防恐反恐教育培训制度.docx VIP
- 2025贵州黔东南州凯里市选聘城市社区工作者150人笔试备考试题及答案解析.docx VIP
- 四川省事业单位综合知识针对四川讲义国情省情.pdf VIP
- ZOOM声乐乐器F8n Pro Operation Manual说明书用户手册.pdf
- 宁波市送达地址确认书.pdf VIP
- 内蒙古军航钨钼稀土科技有限公司钨、钼制品生产项目环境影响报告表.pdf VIP
- 【抗战胜利80周年】铭记伟大胜利汲取奋进力量抗战胜利80周年.pptx VIP
- 工程高大模板工程监理实施细则.doc VIP
文档评论(0)