首页 理论教育 单片机原理与接口技术相对寻址方式

单片机原理与接口技术相对寻址方式

时间:2023-11-16 理论教育 版权反馈
【摘要】:相对寻址方式是为解决程序转移而专门设置的,为相对转移指令所采用。因此,转移的目的地址可用下列公式计算:有效转移地址=PC的当前值+rel=转移指令所在地址值+转移指令字节数+rel。其中,地址偏移量rel是单字节的带符号的8位二进制数补码数。当目标转移地址大于PC当前值时,rel为正数,相对转移指令控制程序向前跳转,反之向后跳转。在应用项目中断服务程序中使用相对寻址指令,指令形式是:JC rel。图3-8 相对寻址示意图

单片机原理与接口技术相对寻址方式

相对寻址方式是为解决程序转移而专门设置的,为相对转移指令所采用。其特点是,以程序计数器PC的当前值为基地址,加上指令中给出的相对偏移量rel得到目标转移地址后,再送入PC中,更新PC的值,从而实现程序跳转。因此,转移的目的地址可用下列公式计算:有效转移地址=PC的当前值+rel=转移指令所在地址值+转移指令字节数+rel。

PC的当前值是指执行完该指令后的PC值,即该转移指令的地址值加上它的字节数。其中,地址偏移量rel是单字节的带符号的8位二进制数补码数。它所能表示的范围是-128~+127,因此程序的转移范围是以转移指令的下一条指令首地址为基准地址,相对偏移在-128~+127单元之间,既可向前转移,也可向后转移。

rel的具体计算方法如下:

因为PC当前值=当前指令首地址+当前指令字节数

目标转移地址=PC当前值+rel

所以rel=目标转移地址-PC当前值=目标转移地址-当前指令首地址-当前指令字节数。

当目标转移地址大于PC当前值时,rel为正数,相对转移指令控制程序向前(PC值增加方向)跳转,反之向后跳转。

在应用项目中断服务程序中使用相对寻址指令,指令形式是:JC rel。该指令的功能是:当PSW中的最高位Cy=1时,控制程序跳转。

JC NEXT1;若Cy=1,转NEXT1(www.xing528.com)

MOV 28H,#00H

NEXT1:LCALL DISP

可见,指令JC rel中的rel是用标号NEXT1代替的,已知该指令的长度为2B,编译后存在ROM中的首地址为0086H,第二条指令的长度为3B,那么,标号NEXT1的地址就是008BH。

因此rel=目标转移地址-当前指令首地址-当前指令字节数=008BH-0086H-02H=03H。

以上程序经编译后存储于ROM的情况及假设Cy=1时的执行过程如图3-8所示。

978-7-111-54295-7-Chapter03-9.jpg

图3-8 相对寻址示意图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈