控制转移类指令
- 格式:doc
- 大小:43.50 KB
- 文档页数:1
控制转移类指令✧用于实现分支、循环、过程等程序结构,是仅次于传送指令的最常用指令.✧控制转移类指令通过改变IP(和CS)值,实现程序执行顺序的改变说明✧只有中断返回指令(IRET)改变控制标志位✧许多转移指令受状态标志位的影响1.无条件转移指令(JMP 操作数;程序转向label标号指定的地址)◆寻址方式:直接寻址方式转移地址象立即数一样,直接在指令的机器代码中,就是直接寻址方式间接寻址方式转移地址在寄存器或主存单元中,就是通过寄存器或存储器的间接寻址方式◆目标地址范围✓段内(注意转移范围是+ -,即前后都可以转移!当向地址增大方向转移时,位移量为正;向地址减小方向转移时,位移量为负)✡段内转移——近转移(near)⏹转移范围用二个字节表达,在当前代码段64KB范围内转移(±32KB范围)⏹不需要更改CS段地址,只要改变IP偏移地址,由16位带符号数给出。
✡段内转移——短转移(short)⏹转移范围用一个字节表达,在当前代码段256B范围内转移(-128~+127范围),只改变IP的值,由8位带符号数给出。
✓段间段间转移——远转移(far)从当前代码段跳转到另一个代码段,可以在1MB范围需要更改CS段地址和IP偏移地址目标地址必须用一个32位数表达,叫做32位远指针,它就是逻辑地址。
段间间接转移指令中,目的地址存放在连续4个存储单元字节中,低字节两个单元的内容代替IP,高字节两个单元的内容代替CS。
注:实际编程时,汇编程序会根据目标地址的距离,自动处理成短转移、近转移或远转移程序员可用操作符short、near ptr或far ptr强制.✌思考:如果转移超过16BIT,怎么办?答:变成段间转移。
JMP 1234H 这个指令对否?JMP 12345678H呢?2、条件转移指令(Jcclable;条件满足,发生转移:IP←IP+8位位移量;条件不满足,顺序执行)注意:1.Jcc本身不是一条指令,它是条件转移指令的统称。