资料介绍
MCS-51系列单片机作为经典的单片机应用十分广泛,其指令总共有111条。其指令中对操作数的寻址方式有7种,分别为立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。在学习相对寻址的内容和有关相对寻址的指令时,许多初学者会对于偏移量的值和跳转目的地址的值混淆不清,产生疑惑和不解。许多教材对此问题的解释也不一致,甚至有错误,这加深了初学者的困惑和理解错误。仿真技术在电子电路设计中得到了广泛的应用,利用Protues、伟福软件等可以很直观的展示程序的执行过程。为了揭示相对寻址的本质,本文将利用Protues仿真软件和伟福软件的仿真功能对相对寻址进行剖析。
相对寻址方式是为了程序的相对转移而设计的,其过程是以当前PC的内容为基址,加偏移量作为转移地址,从而实现程序的转移。转移的目的地址取决于表达式:目的地址=转移指令地址+转移指令字节数+偏移量。需要注意的是,偏移量是有正负号之分的,偏移量的取值范围是当前PC值的-128~+127之间。该表达式应这样理解:在执行转移指令语句时,PC的内容是转移指令的下一条指令的地址值,该地址值加上要偏移的地址字节数形成新目的地址,然后程序跳转到新的目的地址,其中要偏移的地址字节数为8位有符号数二进制数,即偏移量在-128~+127之内。那么这个偏移量是如何得到的呢?在许多教材和文章中均以rel作为相对寻址的标志,这些教材和文章对相对寻址的解释都很相似,其解释为:以程序计数器PC的当前值为基址,加上汇编指令中给出的相对偏移量rel,形成新的PC值,即跳转目的地址,相对偏移量rel为一字节补码数,其表示范围为-128~+127[1-8]。举例来说明此问题,如下面的汇编语言程序语句:
ORG 0200H
MOV A,#36 ;双字节指令
JNZ 30H ;双字节指令
按这些教材和文章中的解释,执行指令JNZ 08H时PC值变为0202H+2,30H就是相对偏移量,该指令执行后程序应该跳转到目的地址=0202H(转移指令地址)+2(转移指令JZ的字节数)+30H(偏移量)=0232H上。事实上这种解释是错误的,该跳转指令执行后程序不会跳转到计算出的目的地址上去。笔者认为应该是:进行相对寻址时,确实是以PC的当前值作为基址,加上相对偏移量形成新的目的地址,但是在汇编指令中并不能直接看出相对偏移量,这个偏移量体现在机器码中;而汇编指令中的rel,不管是数值形式还是符号形式只能是目的地址值,且其距离在当前PC值-128~+127的范围内。
- 51单片机的硬件与工作原理的详细资料说明 528次下载
- 51单片机的汇编指令详细资料说明 14次下载
- 使用51单片机控制小灯闪烁的程序和资料说明 2次下载
- 51单片机例函数的详细资料说明 8次下载
- 使用51单片机进行按键控制的资料说明 5次下载
- 使用51单片机进行寻址的方式详细说明 1次下载
- 单片机有哪些寻址方式?7种寻址方式的详细资料讲解 2次下载
- 51单片机的一些特殊寄存器资料说明 2次下载
- 51单片机汇编语言的寻址方式详细资料说明 1次下载
- 51单片机特殊功能寄存器中的字节寻址和位寻址表详细说明 3次下载
- 51单片机中IIC协议的详细资料说明 7次下载
- 51单片机系列命名规则资料说明 2次下载
- 使用51单片机进行流水灯的设计资料和程序资料说明 5次下载
- 51单片机教程之51单片机的串行口应用举例资料说明 17次下载
- CPLD扩展51单片机寻址范围 21次下载
- 什么是51单片机最小系统 1314次阅读
- 51单片机烧写程序的方法 3032次阅读
- 51单片机的最小系统应用说明 7049次阅读
- 使用AT89S51单片机制作红外遥控器的资料和源代码详细说明 5263次阅读
- PIC单片机以及51和AVR单片机的IO口操作方法解析 2557次阅读
- 51单片机存储器的结构和原理解析 2w次阅读
- 80C51单片机实现专用寄存器位寻址的设计方案 2700次阅读
- PIC单片机以及51单片机和AVR单片机的IO口操作方法介绍 1700次阅读
- 51单片机引脚简介 5.2w次阅读
- 探讨单片机的寻址方式 7214次阅读
- 51单片机的SCON寄存器与C程序解析 1.1w次阅读
- 基于80C51单片机位寻址编程 3148次阅读
- 51单片机和AVR单片机有什么区别 1.2w次阅读
- 单片机8x8矩阵键盘原理说明 2.3w次阅读
- 51单片机教程第3讲-控制引脚 3129次阅读
下载排行
本周
- 1储能电源市场分析
- 7.99 MB | 10次下载 | 免费
- 2储能电源市场分析报告
- 2.61 MB | 6次下载 | 免费
- 3磁环电感定制时应该注意什么
- 0.32 MB | 2次下载 | 免费
- 4labview文档教程资料(一)
- 24.29 MB | 2次下载 | 免费
- 54.5V 至 17V 输入、8A 同步降压 SWIFT™ 转换器TPS568215OA数据表
- 1.27MB | 1次下载 | 免费
- 6轻触三功能+常按 SOS 功能手筒LED驱动ICSD3302数据手册
- 0.60 MB | 1次下载 | 2 积分
- 7英集芯IP5353 QFN32 规格书pdf
- 2.70 MB | 1次下载 | 免费
- 8采用QFN封装且具有2.95V-6V 输入的LMZ30604 4A电源模块数据表
- 1.86MB | 1次下载 | 免费
本月
- 1STM32国内外发展现状
- 1.15 MB | 15次下载 | 免费
- 2传感芯片选型指南
- 3.60 MB | 12次下载 | 免费
- 3储能电源市场分析
- 7.99 MB | 10次下载 | 免费
- 4ATmega8芯片中文手册
- 2.45 MB | 8次下载 | 1 积分
- 5TDK电容器产品指南
- 11.88 MB | 7次下载 | 1 积分
- 62A多电池高效开关充电器AN_SY6912A中文资料规格书
- 1.43 MB | 7次下载 | 免费
- 7STM32F030单片机编程中文参考资料
- 15.52 MB | 6次下载 | 3 积分
- 8储能电源市场分析报告
- 2.61 MB | 6次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935091次下载 | 免费
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420050次下载 | 免费
- 3Altium DXP2002下载入口
- 未知 | 233068次下载 | 免费
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191317次下载 | 免费
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183316次下载 | 免费
- 6labview8.5下载
- 未知 | 81567次下载 | 免费
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73788次下载 | 免费
- 8NI LabVIEW中实现3D视觉的工具和技术
- 未知 | 70088次下载 | 免费
评论
查看更多