欢迎来到天天文库
浏览记录
ID:39514804
大小:612.10 KB
页数:97页
时间:2019-07-04
《《微机应用》PPT课件(I)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章控制转移和程序结构制作钱晓捷微型计算机原理及应用2006年第5章控制转移和程序结构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:给出将要执行指令的偏移地址程序顺序执行,微处理器自动增量
2、EIP程序控制转移,EIP随之改变程序转移到另外的代码段,EIP和CS都将改变控制转移类指令:改变EIP(有些也改变CS),即改变程序执行顺序(实现程序控制转移)的指令目标地址寻址方式:改变CS和EIP寄存器,或者说如何指明目的地、即目标地址的方法目标地址=目的地址=转移地址转移范围段内转移在当前代码段范围内的程序转移不需更改CS,只要改变EIP(偏移地址)也称近转移(Near):16位段是16位近转移NEAR16,32位段是32位近转移NEAR32短转移(Short):转移范围在127~-128字节段间转移从当前代码段跳转到另一个代码段需要更改CS(段地址)和EIP(
3、偏移地址)可在整个程序控件内跳转,也称远转移(Far):16位段是32位远转移FAR16指针,32位段是48位远转移FAR32指针标号、逻辑段名、子程序名等标识符具有地址和类型属性。获得地址属性:OFFSET/SEG;获得类型值:TYPE;强制转换类型:PTR。段转移、近转移、远转移的类姓名:SHORT/NEAR/FAR目标地址寻址方式相对寻址方式提供目标地址相对于当前指令指针EIP的位移量目标地址(转移后的EIP)=当前EIP+位移量相对寻址都是段内转移,最常用、最灵活直接寻址方式直接提供目标地址目标地址(转移后的CS和EIP)=指令操作数间接寻址方式指示寄存器或存储
4、单元目标地址来自寄存器或存储单元、间接获得寄存器间接寻址:用寄存器保存目标地址存储器间接寻址:用存储单元保存目标地址无条件转移指令JMP无条件转移:程序无条件改变执行顺序JMP指令相当于高级语言的goto语句JMPlabel;程序转向label标号指定的地址;段内相对寻址,段间直接寻址JMPreg16/reg32;程序转向寄存器指定的地址;寄存器间接寻址JMPmem16/mem32;程序转向存储单元指定的地址;存储器间接寻址JMP指令的4种类型1.段内转移、相对寻址标号指明目标地址,指令代码包含位移量2.段内转移、间接寻址通用寄存器或主存单元包含目标指令的偏移地址3.段
5、间转移、直接寻址标号包含目标指令的段地址和偏移地址4.段间转移、间接寻址16位段用双字存储单元包含目标地址32位段用3字存储单元包含目标地址MASM会根据存储模式等信息自动识别演示[例题5-1]无条件转移程序-1;数据段00000000nvardw?;代码段0010EB01jmplabl1001290nop0013B8FF02labl1:movax,typelabl10016E90001jmpnearptrlabl2001990nop001AB80020Rlabl2:movax,offsetlabl3001DFFE0jmpax001F90nop0020B8002BRla
6、bl3:movax,offsetlabl40023A30000Rmovnvar,ax0026FF260000Rjmpnvar002A90nop相对短转移相对近转移寄存器间接近转移存储器间接近转移[例题5-1]无条件转移程序-2;数据段000200000000fvardd?;代码段002BB8FF05labl4:movax,typefarptrlabl5002EEA----0034Rjmpfarptrlabl5003390nop0034B80047Rlabl5:movax,offsetlabl60037A30002Rmovwordptrfvar,ax003ABA----R
7、movdx,seglabl6003D89160004Rmovwordptrfvar+2,dx0041FF2E0002Rjmpfvar004590nop0046labl6:存储器间接远转移直接远转移调试条件转移指令Jcc根据指定的条件确定程序是否发生转移Jcclabel;条件满足,发生转移;否则,顺序执行下一条指令LABEL表示目标地址,采用段内相对寻址方式16位80x86微处理器:只是-128~+127间的短转移32位IA-32微处理器:达到32位的全偏移量条件转移指令不影响标志,但要利用标志cc表示利用标志判断的条件,16种、两类单个标
此文档下载收益归作者所有