历史上的今天
返回首页

历史上的今天

今天是:2025年03月20日(星期四)

正在发生

2018年03月20日 | EM78P4475单片机指令系统

2018-03-20 来源:eefocus

   一、EM78P447S指令的执行时序
  作为时基的时钟振荡器,产生的时钟脉冲信号经内部分频电路分频后形成“指令周期(Tins)”。作为EM78P447S单片机的重要特色之一,一个指令周期既可以占用2个时钟周期,也可以占用4个时钟周期,可以由用户自主选定。因此,一个“指令周期”可以由2个时钟周期(即2个节拍Q1和Q2)或4个时钟周期(即4个节拍Q1、Q2、Q3和Q4)构成。每当Q1节拍的上升沿出现时,程序计数器PC自动加1。
  由于EM78单片机内部采用双总线结构,使得它在执行一条指令的同时,就可以提取下一条指令,从而实现“流水作业”。就是说,在同一个指令周期之内,执行指令和提取指令两种活动在同时进行。这就使每一条指令的平均执行时间为一个指令周期,、因此,就可以所成,EM78单片机指令的执行时问“单周期化”了。绝大多数指令的运行时间都仅占用一个指令周期,只有极个别的指令(即对程序计数器PC做“写”操作的指令,比如MOV PC,A)才占用两个指令周期,这一点应该引起注意。
  二、EM78P447S指令概述
  不同CPU内核的单片机,具有不同的指令系统。指令系统中的每一条指令都完成一种特定功能的简单操作,比如数据传送操作、加法操作等。将若干条实现简单操作的指令语句,按照一定的规则排列组合起来,就构成了一个可以完成复杂功能的程序。    为了便于学习和掌握,通常每一条指令都用表意性很强的英文单词或语句缩写来代表。例如,NOP指令,就是由“No Operation.”一句英文缩略而成,中文含义是“空操作”  所以,通常人们将代表一条指令的一个字符串称为“助记符”。假如按指令被使用的频繁程度划分整个指令系统,其实只有一部分指令在编写程序时经常用到,而另一部分指令却较少使用,还有一部分指令极少用到。每条指令一般都由操作码和操作数组成,也有个别指令不带操作数。操作码是指令操作功能的记述,而操作数则描述操作的对象和操作的范围。
  1.指令结构
  一条指令的指令码一般都可分解成两部分:第一部分为操作码(OPCODE),代表指令功能;第二部分为操作数(OPERAND),表示指令操作的对象,或运算时所需要的参数。操作数又可以细分为两部分:第一操作数和第二操作数。第一操作数就是目标操作数,第二操作数就是源操作数。以一条传送指令为例,源操作数就是数据的发源地,而目标操作数就是数据的目的地。    EM78P447S单片机,共有指令58条,其编码长度均为13比特(bit)其一般指令格式为:操作码第一操作数,第二操作数或操作码  目标操作数,源操作数  这种书写格式与流行的MCS-51单片机的指令系统,以及许多微机原理教科书中介绍的80X86指令系统相一致,也比较符合人们的记忆习惯。对于EM78P447S指令系统中的一条指令,操作数可以是两个、一个或一个也没有。
  2 指令描述方法
  对后面描述过程中所采用的一些符号或表示方法需作说明,见下表。

指令描述方法
  3.EM78P447S指令说明
  以下对于EM78P447S单片机整个指令系统中的每条指令,以“指令的字母为序”进行全面介绍,包括语法规则、指令编码、操作内容、影响标志和功能说明等。其中语法规则就是汇编格式,也就是汇编器工具软件认可的格式。

指令描述方法

操作数的寻址方式

4.操作数的寻址方式  

  操作数指定参与运算的数据或者数据所在的存放地址。所谓“寻址”就是寻找操作数的存放地址,也就是给操作数定位的过程。所谓寻址方式,就是寻找操作数或操作数所在地址的方法和形式。 

   在EM78P447S的指令系统中,根据操作数的来源不同,设计了5种寻址方式:立即寻址、直接寻址、隐含寻址、间接寻址和比特寻址。 

   (1)立即寻址    

在这种寻址方式中,操作数在指令码中直接获取(这种在指令码中直接携带的操作数就称为立即数)。  

  [例]ADD A,@16H;

指令执行过程

    实现的功能是,将立即数16H(前面需要带有一个标识符@)与累加器A的内容(假设为99H)相加,结果(AFH)送到A。其指令码的二进制形式为:1,1111,0001,0110;其中前5位是操作码,后8位就是立即数。指令执行过程如上所示。算术逻辑单元ALU的两个入口,送入的分别是加数16H(来自指令码)和被加数99H(来自累加器A),在ALU中完成加法操作,从ALU的唯一出口把结果AFH送回A中。

(2)直接寻址  

  采用直接寻址方式的指令,可以在指令码中直接获取一个存放着操作数的存储地址,即指令码中包含着被访问(即读写)寄存器的单元地址。 

 [例]OR A,15H; 

操作过程

   实现的功能是,将地址为15H的RAM单元的内容(假设是16H)与累加器A的内容(假设是99H)进行逻辑“或”之后,结果(9FH)送入A中。参加逻辑“或”运算的一个数据(16H)所在的单元地址(15H)可以从指令中直接得到。操作过程如上所示。(3)间接寻址在采用寄存器间接寻址方式的指令码中,6位寄存器地址必为“全0”。利用rrrrrr=000000这个“专用地址”,特指RSR (RAM选择寄存器),并且是以RSR寄存器内容为地址,所指定的工作寄存器单元中存放着被访问的数据。从表面上看,指令码中的6位0指定的是IAR(间接寻址寄存器),其实IAR仅仅是一个有名无实的寄存器单元,只不过是将它的地址编码给专用化了。这样做可大大简化指令系统。 

   为了便于理解,我们不妨换一个角度来分析,把RSR看成一个具有双地址(分别为00H和04H)的特殊的寄存器单元,而可以不再提及IAR寄存器。当用地址04H访问RSR时,就像访问普通寄存器一样,可以直接对RSR的内容进行读或写;而用地址00H访问RSR时,而它就是一个间接寻址寄存器,不是对RSR的内容进行读或写,而是把它的内容作为地址使用。假如用户所需要访问的一组寄存器有地址相邻的特点,使用间接寻址是很方便的。  

  [例]XOR A,0;  

 实现的功能是,将15H号RAM单元的内容(假设为16H)与A内容(假设为99H)相“异或”,运算结果(8FH)送回A。参加“异或”运算的一个操作数(16H)可以从指令码中间接得到。RSR、A和15H号RAM单元的内容都是预先存入的。其操作过程如下图所示。

 操作过程

 在下页的下中描述了直接寻址方式和间接寻址方式,这两种寻址过程中RAM工作寄存器地址的形成。对于直接寻址方式,体选码来自RAM选择寄存器RSR的最高2位,体内地址直接来自指令码;对于间接寻址方式,体选码也来自RAM选择寄存器RSR的最高2位,但是体内地址却来自RSR的低6位。 

直接寻址方式和间接寻址方式

   对于RAM的特殊功能寄存器空间中的各寄存器只能进行直接寻址,不能进行间接寻址。  

  (4)隐含寻址  

   采用隐含寻址方式的指令,在指令码中不必指明存放着操作数的存储地址,即指令码中并非包含着被访问(即读写)寄存器的单元地址,就可以自动地访问一个默认的寄存器。 

   [例]CONTR; 

   实现的功能是,将控制寄存器CONT的内容读取之后,经过ALU送到累加器A中(CONT寄存器没有统一的地址编码,这一点与众不同)。其操作过程如下图所示。 

直接寻址方式和间接寻址方式

 (5)比特寻址  

  可以对任一寄存器中的任一比特位直接寻址访问,也就是指令码中既包含着被访问寄存器的地址,又包含着该寄存器中的某一比特的地址。如果将RAM存储器看成一个阵列的话,那么在这个阵列中寻找某一个比特,就需要一个纵坐标和一个横坐标纵坐标就相当于单元地址,横坐标就相当于比特地址。 

   [例]BS 15H,4;  

  实现的功能是把地址为15H的寄存器单元内的比特4置为1。  

累加器

  5.以累加器A为中枢的数据传递方式    数据的逻辑运算和算术运算过程,以及控制信号的输入和输出过程,在单片机内部都可以看成是“数据传递”的过程。根据EM78P447S的硬件系统和软件系统(即指令系统和寻址方式)的规划特点,我们可以总结出在单片机内部,在各个寄存器之间进行数据传递,能够实现的几种途径和方式。不妨可以用上进行形象化地描述。该图中的每一条带箭头的线条都代表一种传递方式,在每一条带箭头的线条旁边,还同时分别给出了实现相应的那一种数据传递所用指令的一个实例。其中有一点值得注意的是,“MOV R,R”指令中的“R”实际指的是同一个工作寄存器单元,该指令的目的是影响标志位“Z”  事实上,就不存在不同工作寄存器单元之间直接传递的指令,只能以A作中转实现间接传递。

    6.“CPU内核一专用寄存器一模块或部件”三者相互关系  

  对于单片机的开发和应用,其主要任务有两项:一是软件设计,二是硬件设计。硬件没计我们暂且不提,在此只想用软件设计的观点,从不同角度剖析和理解单片机内部的组织关系。  

  软件设计实际上就是运用指令编制程序,而EM78P447S单片机的每条指令的作用范围非常集中,作用的对象也比较单纯,仅仅限制在(包含着专用寄存器和通用寄存器的)数据存储器RAM的范围之内,也就是说,指令的操作对象主要就是数据存储器中的各个寄存器单元。单片机的工作过程就是用一条条的指令“指挥”各部分硬件的动作,那么,这种“指挥”就是通过给特殊功能寄存器填写相应的参数来实现的。因此,我们不妨将EM78P447S单片机画成如下图所示的形式,其CPU内核与专用寄存器之间存在着灵活的“软件上的对应”关系,而专用寄存器与外设模块和功能部件之间存在着固定的“硬件上的映射”关系。专用寄存器在中问扮演着桥梁或者界面的角色。

EM78P447S单片机画成

  单片机与外界交换信息的方向有两个:(l)各个外设模块从外部世界(指单片机芯片的封装之外)采集的现场信息,经过硬件电路反映到与自身对应的专用寄存器内,CPU通过执行指令从该寄存器里获取相应的信息;(2)CPL通过填写与某一外设模块对应的专用寄存器单元,由该寄存器单元经过硬件电路将控制信息映射到外设模块上,再由外设模块驱动外接电路完成相应的运作,从而将CPU的命令落到实处。 

   我们在用指令编写程序时,不仅应搞清指令系统中每条指令的功能,还应弄清专用寄存器与外设模块或功能部件之问的对应关系。


推荐阅读

史海拾趣

AMI Semiconductor公司的发展小趣事

虹冠电子注重全球市场的拓展,通过建立完善的营销网络和合作伙伴关系,将产品销往世界各地。公司在新竹、汐止以及美国硅谷等地设有研发中心和生产基地,能够为客户提供及时、高效的技术支持和服务。同时,虹冠电子还与国内优秀的晶圆封测大厂等合作伙伴建立了紧密的合作关系,共同推动电源管理技术的发展和应用。

DMEL Inc公司的发展小趣事

在市场竞争日益激烈的情况下,DMEL Inc意识到品牌建设的重要性。公司开始注重品牌形象的塑造和推广,通过广告宣传、公益活动等方式,提升品牌的知名度和美誉度。同时,DMEL Inc还加强了与消费者的沟通和互动,了解消费者的需求和反馈,不断改进产品和服务。这些努力使得DMEL Inc在消费者心中树立了良好的品牌形象。

迦美信芯(CanaanTek)公司的发展小趣事

在导航芯片领域,迦美信芯也取得了显著成就。由公司董事长兼CTO倪文海主导开发的兼容“GPS+北斗导航”的射频芯片,被国内主要基带厂商广泛采用,占据了北斗细分市场60%的份额。这一成就不仅彰显了迦美信芯在导航芯片领域的强大实力,也为其在物联网和汽车电子等领域的应用奠定了坚实基础。

聚洵(Gainsil)公司的发展小趣事

随着公司的发展壮大,迦美信芯不仅在上海设立了总部,还在杭州、北京、深圳等地设立了全资子公司和业务办事处。此外,公司还在欧洲比利时设立了研发中心,以进一步拓展全球市场。这些布局不仅增强了公司的研发实力,也为其在全球范围内的业务拓展提供了有力支持。

ETA Electric Industry Co Ltd公司的发展小趣事

近年来,ETA Electric Industry Co Ltd积极响应全球环保倡议,致力于实现可持续发展。他们优化了生产流程,减少了废弃物和污染物的排放。同时,公司还加大了对环保型电子元器件的研发力度,推出了一系列节能、环保的新产品。这些举措不仅提升了公司的社会形象,也为其在激烈的市场竞争中增添了新的优势。

上述五个故事,讲述了ETA Electric Industry Co Ltd在电子行业的发展历程。从起步之初的艰难,到技术创新的突破,再到市场拓展和质量管理的成功,最后到对环保和可持续发展的追求,每一步都体现了公司的成长和进步。

Hayashi Denko Co Ltd公司的发展小趣事

进入新世纪,ETA Electric Industry Co Ltd意识到技术创新是企业发展的关键。于是,公司开始加大研发投入,引进了一批高素质的研发人员。他们专注于开发新型电子元器件,特别是在微型化、高性能方面取得了显著成果。其中,他们研发的一种新型微型电容器,因其体积小、性能稳定而广受好评。这一技术创新不仅提升了公司的市场竞争力,还为公司赢得了更多的合作机会。

问答坊 | AI 解惑

有利用单片机实现数据采集之后再串口传输的实例吗?

因为接触单片机应用的时间不常,想看看有没有这方面的实例可以参考的 谢谢啦!!…

查看全部问答>

VS.NET 2005开发PDA用程序

有这么一个小程序,就是当数据库有数据的时候,会弹出一个对话框,在弹出对话框的同时,我想加上一段提示音,但是试了好几种方法,都不行,哪位高手能指教下啊,小弟感激不敬!!…

查看全部问答>

哪位在本本上用并口连接过H-Jtag 调试?

这样的是: 在PC上我跑IAR, 和 ADS 的两个工程文件,都没有问题, 用自己做的调试板+H-JTAG,都能正常 而换到本本上,在H-JTAG时,检测硬件都没问题,但调试时,分别出了问题: 1 在ADS 上, 按F5后,跑不到,MAIN() 函数那,发现死在 PLL初 ...…

查看全部问答>

WINCE驱动程序是否可以同时开启SPI中断和DMA中断?

请教一下,一个驱动程序程序中,可不可以同时存在SPI中断和DMA中断?还是只能用一个中断? 当驱动程序使用了DMA中断后,SPI中断是否起作用?…

查看全部问答>

【求助】关于延时的问题!

我用C写延时子程序,请问怎么样才可以算出延时了多久呀!好像430讲时序方面也讲的很少,哪位高手有这方面的资料或程序,可否借光参考一下。…

查看全部问答>

基于TMS320F28335的光伏并网模拟装置

基于TMS320F28335的光伏并网模拟装置…

查看全部问答>

0-10mv交流经过运放输出0-5v的直流

本帖最后由 dontium 于 2015-1-23 13:11 编辑 设计电路,在模电书上看到信号放大的电路,是三个运放,有没有两个运放的还有就是单电源运放放大的 …

查看全部问答>

TI M4处理器

以前主要搞PIC单片机软件,现在想学习TI  M4处理器 能给点的建议吗?(最好能推荐款开发板)。…

查看全部问答>

病人/老人身体状况监测系统

采用Ti SensorTag,安卓手机 , 能实时连续采集病人/老人的身体状况,比如体温脉搏,心率,皮肤电阻等信息,实实传到具有蓝牙设备的手持安卓终端上(手机),来进行监测,分析,并给病人/老人提醒,建议。危险或异常情况下可以通过监测端短信给监护 ...…

查看全部问答>