第3章 80X86指令系统和汇编语言(2) 3.2.5 控制转移指令 在8086程序中,指令执行的顺序是由CS和IP确定的。为了使程序转移到新的地址去执行,可采用改变CS和IP,或者仅改变IP的方法来实现。前者为段间转移(远转移),属性为FAR;后者称为段内转移(近转移或短转移),属性为NEAR或SHORT。无论是段内转移还是段间转移,都有直接转移和间接转移之分。直接转移是转移的目的地址由IP加上指令中的一个8位或16位的位移量形成;间接转移则是转移目的地址间接存储在某一寄存器或内存单元中。 计算转移地址有两种方法: 一种是当前的IP值加一个8位或16位以补码表示的位移量,也就是以当前指令为中心往前或往后转移,称为相对转移; 另一种是以新的值完全代替当前的IP值或CS和IP的值,称为绝对转移。 8086中所有段内直接转移都是相对转移,所有段内和段间的间接转移都是绝对转移。 1. 无条件转移指令 1) 段内直接短转移 格式:JMP SHORT OPR 功能:IP←(IP)+8位位移量,其中8位位移量是CS段内目的地址OPR与JMP指令的下一条指令地址之差,为一个有符号数,只允许在-128~+127字节范围内转移,为相对转移指令。 例如: … JMP SHORT HELLO … … HELLO: …
原创力文档

文档评论(0)