转移指令


转移指令

文章插图
转移指令【转移指令】转移指令是指不按程式的语句流程执行的指令,如跳转指令,call指令、jmp指令等 。
这类指令包括无条件转移指令,条件转换指令,测试CX/ECX值为0转移指令,通过它们可以实现程式的分支转移.转移指令可以使用与转移地址有关的定址方式形成转向地址,具体适用性视不同指令而有所区别.
基本介绍中文名:转移指令
外文名:Transfer instructions
分类:有条件 无条件等
性质:工业流程术语
领域:彙编语言
简介转移指令,相对于流水指令而说的 。转移指令是指不按程式的语句流程执行的指令,如跳转指令,call指令、jmp指令等 。转移指令分为以下几类:无条件转移指令(如:jmp)(1)绝对跳转指令 AJMP addr11 ; (PC)+2→PC, addr10~0→PC10~0这是2KB定址範围内的无条件转移指令,是绝对跳转 。跳转的目的地址必须与AJMP的下一条指令的第一个位元组在同一个2KB定址範围内,这是因为跳转的目的地址与AJMP的下一条指令的第一个位元组的高5位addr15~11相同 。这条指令是为与MCS-48兼容而保留的指令,现在一般很少使用 。(2)相对跳转指令 SJMP rel ; (PC)+2→rel PC 这条指令执行的时候先将PC的内容加2,再加相对偏移量rel,计算出跳转目的地址 。rel是一个带符号的位元组数,在程式中用补码錶示,其值範围为-128B~+127B,当rel为正数时表示正向跳转,为负数时表示负向跳转 。(3)长跳转指令 LJMP addr16 addr16 PC 这条指令执行时把16位运算元的高低8位分别装入PC的PCH和PCL,无条件地转向指定地址 。跳转的目的地址可以在64KB程式存储器地址空间的任何地方,不影响任何标誌位 。(4)间接跳转指令 JMP @A+DPTR 这条指令的功能是把累加器A中的8位无符号数与数据指针DPTR中的16位地址相加,相加形成的16位新地址送入PC 。指令执行过程不改变累加器和数据指针的内容,也不影响标誌位 。条件转移指令(如:jcxz)功能:以标誌位的状态或者以标誌位的逻辑运算结果作为转移依据,如果满足转移条件,则转到目标地址所指示的指令执行否则继续执行下一条指令 。必须指出,条件转移指令转移地址的偏移量限制在-128~+127位元组範围内,採用相对转移方式(相对转移指令是指跳转时以当前地址为基準加上相对偏移量进行跳转,一般是在本地址段内跳转 。如果需要跳转到较远的地方如跳到另一个地址段,就需要加上跳转的目标段地址) 。循环指令(如loop)可以控制程式的循环.过程例如子程式调用和返回指令.中断使计算机暂时挂起正在执行的进程而转去处理某事件.处理完后再恢复执行原进程的过程.