您当前的位置:五五电子网电子知识单片机-工控设备综合-其它EM78P4475单片机指令系统 正文
EM78P4475单片机指令系统

EM78P4475单片机指令系统

点击数:7479 次   录入时间:03-04 12:00:14   整理:http://www.55dianzi.com   综合-其它

   一、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存储器看成一个阵列的话,那么在这个阵列中寻找某一个比特,就需要一个纵坐标和一个横坐标纵坐标就相当于单元地址,横坐标就相当于比特地址。 

[1] [2]  下一页


本文关键字:单片机  综合-其它单片机-工控设备 - 综合-其它