基于仿真技术的MCS—51单片机相对寻址问题的探讨

来源 :课程教育研究·新教师教学 | 被引量 : 0次 | 上传用户:bianmlu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:文章利用仿真软件对MCS-51单片机指令中的相对寻址方式中偏移量的形成做了分析,就汇编指令中相对寻址指令中的‘rel’的本质通过Protues和伟福软件仿真进行了探求。经过仿真软件验证,指出相对寻址指令中的‘rel’在汇编指令中为目的地址,和机器代码中的实际偏移量并非为同一数值。
  关键词:MCS-51单片机;相对寻址;偏移量;汇编语言;机器码
  【中图分类号】G640
  1 前言
  MCS-51系列单片机作为经典的单片机应用十分广泛,其指令总共有111条。其指令中对操作数的寻址方式有7种,分别为立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址[1-4,5~8]。在学习相对寻址的内容和有关相对寻址的指令时,许多初学者会对于偏移量的值和跳转目的地址的值混淆不清,产生疑惑和不解。许多教材对此问题的解释也不一致,甚至有错误,这加深了初学者的困惑和理解错误。仿真技术在电子电路设计中得到了广泛的应用,利用Protues、伟福软件等可以很直观的展示程序的执行过程。为了揭示相对寻址的本质,本文将利用Protues仿真软件和伟福软件的仿真功能对相对寻址进行剖析。
  2 相对寻址执行过程的探讨
  相对寻址方式是为了程序的相对转移而设计的,其过程是以当前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的范围内。
  3相对寻址执行过程的Protues仿真验证
  为了看清楚相对转移指令的偏移量值的本质,以一段程序在Protues仿真软件下来观察其跳转过程,验证程序及其各指令占用地址如下:
  ORG 0000H
  0000H MOV A,#1
  0002H JNZ 08H
  0004H SJMP $
  ORG 0008H
  0008H INC A
  0009H MOV B,#2
  000CH SUBB A,B
  000EH SJMP $
  END
  将程序加载到Protues仿真软件中放的80C51单片机中,经编译后执行调试,调出程序代码窗口,按F11键单步调试操作来观察程序的跳转情况。程序首句给A赋值为1,如果按照rel为偏移量的解释,那么执行指令JNZ A,08H时,当前PC值为0004H,加上偏移量08H,那么目的地址就应该000CH,单步操作是程序将跳转到SUBB A,B指令上。Protues仿真结果如图1所示。
  从图中可以看出,在执行了相对转移指令后,程序并没有跳转到地址000CH上,而是跳到了地址0008H。说明了执行有关相对寻址指令时,指令中的rel并不是真正的偏移量,而是程序跳转的目的地址,当然该rel完全可以用标号来代替,因为标号可以代替绝对地址。
  比如,将上例中的0008H用标号AA来代替,那么仿真结果如图2所示。
  从上面仿真过程可以看出,执行相对转移指令时,教材中所说指令中的rel并非是偏移量,那么这个偏移量在哪儿呢?
  4 相对转移指令的机器码
  因为Protues软件下无法查看程序的机器代码,为了能够观察到前面程序的机器代码,对前面程序段在伟福软件下进行编译,来对其机器代码进行观察,其机器代码如图3所示。可以看出JNZ 08H对应的机器码为7004H,其中70H为操作码,04H为偏移量。这个04H是如何得出的呢?其实偏移量等于跳转的目的地址减去当前PC值。此例中,执行JNZ 08H时PC为下一条指令地址,即SJMP $的地址0004H,目的地址为0008H,偏移量=0008H-0004H=0004H。所以执行程序JNZ A,08H时,程序跳转到了目的地址为0008H的语句。
  图3 程序的机器代码
  由以上分析与仿真结果可知,在相对转移指令中,偏移量rel是体现在机器码中,并非直接体现在汇编指令中。在机器码中的偏移量不能直接拿来作为汇编指令中的偏移量,而汇编语言指令中的rel只能是跳转的目的地址。
  5结论
  MCS-51单片机的相对寻址的汇编指令中,操作数rel不是真正的偏移量,而是跳转的目的地址,该地址可以以数值或目的地址标号的形式给出,但其范围不能超过当前PC值-128~+127的范围。真正的偏移量体现在机器码中,对机器码而言,目的地址=当前的PC值+机器码中的偏移量,当前的PC值是跳转指令下一条指令的首地址。也就是说,汇编语言经编译软件编译时,将计算出的实际偏移量写入机器码中。所以机器码中的偏移量和汇编指令中的rel并不是同一个值。
  参考文献:
  [1] 高玉芹. 单片机原理与应用及C51编程技术.北京:机械工业出版社,2011.6
  [2] 牛昱光,等.单片机原理与接口技术.北京:电子工业出版社, 2008.2
  [3] 郭文川. 单片机原理与接口技术. 北京:中国农业出版社,2007.8
  [4] 姜志海,等. 单片机原理及应用. 北京:电子工业出版社,2005
其他文献
春晓湖南人北京交通台《蓝调北京》主持人来北京之前从来不敢正视自己的声音从来不听广播七年的广播生涯没有留下一盘自己节目的录音直到一年前…… Chunxiao Hunan Beijin
[摘要]本文立足初中物理课堂教学,对初中物理探究性学习策略进行研究,提出激发学生探究兴趣、诱发学生探究灵感、指导学生探究方法、开发学生探究潜能等体系性的探究性学习策略,旨在为初中生物理兴趣的培养、科学探究思维的形成以及物理教学质量的提高提供实践性借鉴。  [关键词]初中物理;探究性学习;策略  【中图分类号】G633.51  所谓探究性学习,是指基于学生对某一学科的好奇心,通过相关问题的引导以及科
摘要:向量作为研究平面图形的一种工具,它具有代数与几何的双重性,与其它知识相结合也成了近几年高考命题的热点。特别对三角形的“四心”有关的向量问题,由于它能凸现出较好的区分和选拔功能,因而备受命题者的青睐。不仅考查了向量的几何运算,又考查了三角形的基本性质,同时也考查了学生掌握运动、变换的数学思想方法及综合运用能力。解决这类问题首先要对三角形的“四”心定义的理解:重心(三条中线的交点)、内心(三个内
摘要:定语从句是英语语法中的重要内容之一,也是高职英语教学的主要组成部分。本文从英语教学的角度,探讨了高职英语教学中定语从句常见问题,并提出了相应的处理对策,以期帮助学生更好的掌握定语从句,激发他们对英语的学习兴趣。  【中图分类号】G633.41  一、引言  定语从句是高职英语语法教学的重难点之一,如何有效地学好定语从句困扰着学生,同样如何有效的教好定语从句也困扰着教师。  在大多高职院校中,
【摘 要】合作学习所指的是为了进行一项集体的课堂任务,教师将学生进行分组,而同组的学生再将本组的成员进行合理地分工而形成的一种具有互助性特点的学习方式。本文就目前国内生物教学中合作学习的应用状况进行了一次详细地分析,并针对合作学习中所存在的一些问题提出了一些切实有效的应对措施。  【关键词】初中生物;有效合作学习;思考  【中图分类号】G633.91  随着新课标的推广,在我国生物的教学过程中合作
高中生物概念的学习是学好生物知识的基础。在高中生物学习过程中,概念很多,有的概念“面貌”不同,而意义相近,有的概念“面貌”相似,而意义却相差甚远。教学中通过比较,不仅使学生掌握比较法,更重要的是通过长期的训练,使学生的观察、分析、比较、综合等能力有所提高,而能力的提高又会促进和推动对知识的掌握,在教学过程中进行系统地示范、指导,使学生学会思考,学会学习,真正成为学习的主人,为终生学习奠定坚实的基础
内容提要:  高中政治新课改给教师带来了前所未有的新挑战。在新课改理念下,教师要转变观念,改变传统的教学模式,适应新课改。教师要充分发挥电教媒体自身的现代化优势,使其在高中政治教学中发挥重要作用。  关键词:电教媒体;高中政治;新课改;学习兴趣;教学手段  【中图分类号】G431  现代教学过程应该是由教师、学生、教材、媒体四个因素构成的。在政治课教学中使用多媒体教学技术,发挥它的声、形、色优势,
摘要:中国是个诗的王国,古典诗词是丰厚博大的中华文化的重要载体。对中学生来说,不仅要积累背诵一定数量的古诗词,还应当了解一些鉴赏诗歌的方法和技巧。在了解和掌握了一定诗歌的基础知识的基础上,还要正确理解词句,品味表现力机强的词句;准确把握形象理解思想内涵;把握思想情感、主旨、风格和意境。  关键词:时代背景;创作风格;思想情感;风格和意境。  【中图分类号】G633.3  中国是个诗的王国,古典诗词
摘要:实验教学是高中物理教学的基础,在提升学生学习兴趣,增强学生探索物理热情中起到了重要的作用,但是传统的验证性物理实验教学则阻碍了学生的学习热情,因为这些实验无非是再现一次教材中所讲述的内容,但是如果将实验转变成探究,则能够极大的提升学生研究物理,学习物理的热情,本文研究的重点就是分析高中物理实验教学存在的问题,并在此基础上分析新课改下的探究式物理实验教学。  关键词:新课程;物理教学;探究式实
【中图分类号】G633.6  教学技能是一种教学的行为方式,所以具有鲜明的实践性和可操作性.教学技能可分为以下几种类型:导入技能、提问技能、讲解技能、语言技能、板书与演示技能、结束技能.那么这些技能如何在数学课中发挥的淋漓尽致呢?以下将重点论述这一问题.  一、导入技能  俗话说“良好的开端是成功的一半”.教学过程开始的导入环节就好像整台戏的序幕,也仿佛是优美乐章的序曲,如果设计和安排得当,就能牵