[理学]NO5控制转移和程序结构I.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]NO5控制转移和程序结构I

上节内容回顾 第5章 控制转移和程序结构 5.1 目标地址寻址方式 5.1.1 转移范围 5.1.2寻址方式 5.1.3无条件转移指令 JMP指令的4种类型 [例题5-1]无条件转移程序-1 [例题5-1]无条件转移程序-2 5.2分支程序结构 转移条件cc:单个标志状态 转移条件cc:两数大小关系 单个标志状态作为条件 [例题5-2]实现指令CBW功能的程序-1 [例题5-2]实现指令CBW功能的程序-2 [例题5-2]实现指令CBW功能的程序-3 [例题5-2]实现指令CBW功能的程序-4 [例题5-3]实现奇偶校验程序-1 [例题5-3]实现奇校验程序-2 [例题5-3]实现奇偶校验程序-3 [例题5-4]统计“1”位个数程序-1 [例题5-4]统计“1”位个数程序-2 5.2.1.2两数大小关系作为条件 [例题5-5]比较两数大小程序 5.2.2单分支结构 [例题5-6]求绝对值程序 5.2.3双分支结构 [例题5-8]显示数据最高位程序-1 5.2.4多分支程序结构 [例题5-10]利用地址表实现多分支程序-1 [例题5-10]利用地址表实现多分支程序-2 [例题5-10]利用地址表实现多分支程序-3 [例题5-10]利用地址表实现多分支程序-4 ;代码段 start1: mov dx,offset msg ;提示输入数字 mov ah,9 int 21h mov ah,1 ;等待按键 int 21h push ax mov dx,offset crlf ;回车换行 mov ah,9 int 21h pop ax ;AL=数字的ASCII码 * * 寄存器相对寻址、 基址变址、 相对基址变址、 带比例存储器寻址 XCHG,XLAT;NEG,CMP,LEA, MUL,IMUL AND,OR,XOR,TEST SHL/SAL,SHR/SAR;ROL/ROR,RCL/RCR CLC,STC;CLD,STD; MOVS,STOS,REP 5.1 目标地址寻址方式 5.1.1转移范围 5.1.2寻址方式 5.1.3 无条件转移指令 5.2 分支程序结构 5.2.1 条件转移指令 5.2.2 单分支结构 5.2.3 双分支结构 5.2.4 多分支结构 5.3 循环程序结构 5.3.1 循环指令 5.3.2 计数控制循环 5.3.3 条件控制循环 5.4 子程序结构 5.4.1 子程序指令 5.4.2 子程序设计 5.4.3 参数传递 5.4.4 程序模块 程序代码在代码段 CS:指明代码段在主存中的开始位置、即段基地址 EIP:给出将要执行指令的偏移地址 程序顺序执行,微处理器自动增量EIP 程序控制转移,EIP随之改变 程序转移到另外的代码段, EIP和CS都将改变 控制转移类指令:改变EIP(有些也改变CS),即改变程序执行顺序(实现程序控制转移)的指令 目标地址寻址方式:改变CS和EIP寄存器,或者说如何指明目的地、即目标地址的方法 目标地址=目的地址=转移地址 段内转移 在当前代码段范围内的程序转移 不需更改CS,只要改变EIP(偏移地址) 近转移(Near):16位段是16位近转移NEAR16, 32位段是32位近转移NEAR32 短转移(Short):转移范围在127~-128字节 段间转移 从当前代码段跳转到另一个代码段 需要更改CS(段地址)和EIP(偏移地址) 远转移(Far):16位段是32位远转移FAR16, 32位段是48位远转移FAR32 相对寻址方式 提供目标地址相对于当前指令指针EIP的位移量 目标地址(转移后的EIP)=当前EIP+位移量 相对寻址都是段内转移,最常用、最灵活 直接寻址方式 直接提供目标地址 目标地址(转移后的CS和EIP)=指令操作数 间接寻址方式 指示寄存器或存储单元 目标地址来自寄存器或存储单元、间接获得 寄存器间接寻址:用寄存器保存目标地址 存储器间接寻址:用存储单元保存目标地址 无条件转移:程序无条件改变执行顺序 JMP指令相当于高级语言的goto语句 JMP label ;程序转向label标号指定的地址 ;段内相对寻址,段间直接寻址 JMP reg16/reg32 ;程序转向寄存器指定的地址 ;寄存器间接寻址 JMP mem16/mem32 ;程序转向存储单元指定的地址 ;存储器间接寻址 1. 段内转移、相对寻址 标号指明目标地址,指令代码包含位移量 2. 段内转移、间接寻址 通用寄存器或主存单元包含目标指令的偏移地址 3. 段间转移、直接寻址 标号包含目标指令的段地址和偏移地址 4. 段间转移、间接寻址 16位段用双字存储单元包含目标地址 32位段用3字存储单元包含目标地址 MASM会根据存储模式等信息自动识别 ;

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档