CN1584824A - 一种基于cisc结构的微处理器构架及指令实现方式 - Google Patents
一种基于cisc结构的微处理器构架及指令实现方式 Download PDFInfo
- Publication number
- CN1584824A CN1584824A CN 03150402 CN03150402A CN1584824A CN 1584824 A CN1584824 A CN 1584824A CN 03150402 CN03150402 CN 03150402 CN 03150402 A CN03150402 A CN 03150402A CN 1584824 A CN1584824 A CN 1584824A
- Authority
- CN
- China
- Prior art keywords
- instruction
- register
- data
- address
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 13
- 238000006073 displacement reaction Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 9
- 239000000284 extract Substances 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 3
- 238000000354 decomposition reaction Methods 0.000 claims description 2
- 238000000926 separation method Methods 0.000 claims description 2
- 238000010977 unit operation Methods 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 abstract 1
- 230000002093 peripheral effect Effects 0.000 description 8
- 101100496104 Mus musculus Clec2d gene Proteins 0.000 description 7
- 101100274534 Rattus norvegicus Clec2d11 gene Proteins 0.000 description 7
- 230000003247 decreasing effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000009825 accumulation Methods 0.000 description 6
- 230000007423 decrease Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 2
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 2
- 102100040856 Dual specificity protein kinase CLK3 Human genes 0.000 description 2
- 102100040858 Dual specificity protein kinase CLK4 Human genes 0.000 description 2
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 2
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 2
- 101000749304 Homo sapiens Dual specificity protein kinase CLK3 Proteins 0.000 description 2
- 101000749298 Homo sapiens Dual specificity protein kinase CLK4 Proteins 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
本发明是一种微处理器构架及其实现方式,其简化了CISC微处理器庞杂的指令集,内部指令实现方式做了改进,数据线和指令线分离,使指令处理的速度加快,在一定程度上弥补了CISC微处理器指令集庞大、执行效率低的缺点。指令集共有151条指令,支持常见典型各类指令,包括数据传送交换、算术逻辑运算、比较、乘除法、移位、循环、半字节操作、位操作、跳转、调用返回、进栈退栈、软中断以及空操作类指令。本发明的微处理器可配置适当的***资源,其端口多,资源丰富,适用于实时控制各类嵌入式、SOC***,具有高速、高性能、低功耗、低噪声等特性,抗干扰能力强,是一款适用于家电、民用通信等消费类电子产品的微控制器。
Description
技术领域
本发明涉及半导体集成电路设计领域的微控制器(MCU),尤其是涉及执行复杂指令集的基于CISC结构的微控制器。
背景技术
目前微控制器(MCU)一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM/EEPROM/FlashROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、LCD驱动、UART、I2C等各种必要功能和外设。为适应不同的应用需求,一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。这样可以使单片机最大限度地和应用需求相匹配。微控制器的最大特点是单片化,体积小,从而使功耗和成本下降,可靠性提高。微控制器是目前嵌入式***工业的主流。微控制器的片上外设资源一般比较丰富,适合于各种应用。
嵌入式微控制器目前的品种和数量最多,较有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。另外还有许多半通用系列如:支持USB接口的MCU 8XC930/931、C540、C541;支持I2C、CAN-Bus、LCD及众多专用MCU和兼容系列。目前MCU占嵌入式***约70%的市场份额。
在MCU开发方面,以架构而言,可分为两大主流:RISC和CISC。RISC指令集组成比较简单,相对指令执行速度较快,但完成一项任务可能需要多条指令组合而成,针对较复杂组合的工作便需要占用较多的编译器时间来执行,其总线结构为哈佛型。
CISC的总线结构是冯.诺依曼型,计算机在同一个存储空间取指令和数据,数据线和指令线分时复用。在流水线结构方面,取指和执行采用单指令流水线结构,它的指令集丰富,功能强大。
CISC体系是一种为了便于编程和提高内存访问效率而设计的体系。其主要特征是使用微代码操作和具有丰富的指令集,便于设计新的处理器,能有效缩短新指令的微代码设计时间。其丰富的指令集便于应用工程师的编程使用。具有双操作数格式、寄存器到寄存器、寄存器到内存以及内存到寄存器等的指令,寻址方式灵活。
属于CISC结构的单片机主要有Intel的MCS-51系列、Motorola的M68HC系列、Atmel的AT89系列、台湾Winbond(华邦)W78系列、荷兰Pilips的PCF80C51系列等;一般来说,控制关系较简单的小家电,可以采用RISC型单片机;控制关系较复杂的场合,如大家电、通讯产品、工业控制***应采用CISC单片机
在8位CISC微控制器芯片领域,标准体系架构都是连续型的执行,传统的CISC占据了较大的市场份额,CISC大多有繁杂的指令集,运行效率较低,指令可扩展性较差,应用复杂等缺点,难以满足越来越快速的通信需求。
CISC单片机主要缺点在于:①指令集庞杂,多数指令的利用率不高。②不同的指令,需要不同的时钟周期来完成,每条指令要通过执行一段解释性微程序才能完成,需占用较多的CPU时间,执行效率不是很高。③由于指令庞大,使编译程序选择目标指令的范围很大,不便优化编译。④强调数据控制,导致设计复杂,研制周期长。
发明内容
本发明的目的在于提出一种新型的基于CISC的微处理器构架及指令实现方式,其在传统CISC的基础上做了改进,提出一种有效的***构架,提高了指令运行效率。支持151条基本指令,采用单级四段流水线,运行效率提高,指令组合方便,可满足各类嵌入式实时控制和通信的要求。
根据本发明的第一方面的基于CISC结构的微控制器,该微控制器核包括程序存储器,数据随机存储器,特殊功能寄存器堆,数据总线和地址总线,流水线指令结构,数据缓冲区,通用算术逻辑单元,指令读取及译码器和***控制模块,其中,所述的数据总线分为各自分离的的8位内部数据总线和8位程序数据总线,所述的***控制模块用于产生***时钟、***复位以及各种读写控制电路,所述的单级四段流水线指令处理结构分为4个部分,首先是指令读取及译码电路,即所述的指令读取及译码器通过上述8位程序数据总线从程序存储器读入指令,并对指令进行译码分解;然后通过控制电路根据译码结果读取寄存器或者存储器的内容;再通过算术逻辑单元进行运算;之后对运算的结果存入寄存器或者数据存储器单元;当执行调用、返回等指令时,会对程序指针进行压栈和出栈操作,当执行跳转等指令时,有指针偏移操作,同时在每读下一字节指令时,会对PC有加1的操作。
根据本发明的第二方面的基于CISC结构的微控制器,其特征在于所述的数据存储器(RAM)、程序存储器(ROM)、特殊功能寄存器和数据缓冲区域是空间独立的,利用地址映射电路将它们的地址映射在连续的空间上,并可扩展。
根据本发明的第三方面的基于CISC结构的微控制器的指令实现方式,其特征在于该微控制器的指令集共有151条基本指令,该微控制器支持各类常见的微处理器指令,包括数据传送交换、算术逻辑运算、比较、乘除法、移位循环、半字节操作、位操作、跳转、调用返回、进栈退栈、软中断以及空操作类指令,指令执行周期最短的1个工作周期,最长的10个工作周期,指令可以进行相应的扩展。
根据本发明的第四方面的基于CISC结构的微控制器的指令实现方式,其特征在于所述的指令集包括25条数据传送指令,每条指令有其唯一的操作码识别,指令实现将源地址的数据传送到目的地址中,由于源地址和目的地址可以是多种寻址方式,使得每条指令包含1-4个字节不等的指令编码,产生一类控制信号控制完成:1)控制有关寄存器将数据传送至ALU(2)控制ALU完成地址的计算(3)控制从源地址提取数据(4)控制数据写入目的地址。
根据本发明的第五方面的基于CISC结构的微控制器的指令实现方式,其特征在于所述的指令集还包括10条比较指令,每条指令有其唯一的操作码识别,指令实现将源地址的数据与目的地址的数据进行比较,每条指令包含1-4个字节不等的指令编码,产生一类控制信号控制完成:(1)控制有关寄存器将地址数据传送至ALU(2)控制ALU完成地址的计算(3)控制从源地址和目的地址提取数据传送至ALU(4)控制ALU执行减法操作(5)控制将减法的结果设置标志寄存器。
根据本发明的第六方面的基于CISC结构的微控制器的指令实现方式,其特征在于所述的指令集还包括50条算术逻辑运算指令,每条指令有其唯一的操作码识别,指令实现将源地址的数据与目的地址的数据进行算术或逻辑运算,每条指令包含1-4个字节不等的指令编码,产生一类控制信号控制完成:(1)控制有关寄存器将地址数据传送至ALU(2)控制ALU完成地址的计算(3)控制从源地址和目的地址提取数据传送至ALU(4)控制ALU执行指令要求的算术逻辑操作(5)控制将运算的结果写入目的寄存器。
根据本发明的第七方面的基于CISC结构的微控制器的指令实现方式,,其特征在于所述的指令集还包括2条十进制调整指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现将寄存器中的16进制结果进行十进制调整,产生BCD码,调整后的结果仍回写到寄存器p。
根据本发明的第八方面的基于CISC结构的微控制器的指令实现方式,其特征在于所述的指令集还包括2条乘除法指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现寄存器w与累加器a中的无符号数相乘并回写结果,指令实现寄存器对wa与寄存器c中的无符号数相除并回写。
根据本发明的第九方面的基于CISC结构的微控制器的指令实现方式,其特征在于所述的指令集还包括13条循环移位和半字节操作指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现寄存器或者寄存器与内存的数据的移位或者半字节移位。
根据本发明的第十方面的基于CISC结构的微控制器的指令实现方式,其特征在于所述的指令集还包括24条位操作指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现对寄存器或者内存单元数据的位进行设置和运算。
根据本发明的第十一方面的基于CISC结构的微控制器的指令实现方式,其特征在于所述的指令集还包括11条跳转指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,根据偏移量指令实现程序的跳转。
根据本发明的第十二方面的基于CISC结构的微控制器的指令实现方式,其特征在于所述的指令集还包括8条调用、返回指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,根据不同的寻址方式,指令实现子程序的调用和返回。
根据本发明的第十三方面的基于CISC结构的微控制器的指令实现方式,其特征在于所述的指令集还包括4条进栈退栈指令,产生控制信号,指令实现对程序状态字和寄存器内容的压栈和出栈。
根据本发明的第十四方面的基于CISC结构的微控制器的指令实现方式,其特征在于所述的指令集还包括1条软中断指令,产生控制信号,指令实现软件中断。
根据本发明的第十五方面的基于CISC结构的微控制器的指令实现方式,其特征在于所述的指令集还包括1条空操作指令,产生控制信号,指令实现空操作。
根据本发明的第十六方面的基于CISC结构的微控制器的指令实现方式,其特征在于读入的指令通过所述的指令读取及译码器分解,按分解后的微指令码进行译码,并执行相应的操作,根据寻址方式不同,译码后将操作数或者操作码分别存储于不同的操作数寄存器、微指令码寄存器、内存。
根据本发明的第十七方面的基于CISC结构的微控制器的指令实现方式,其特征在于所述不同的寻址方式按寻址类型分别为立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、隐含寻址、相对寻址、变址寻址、绝对寻址、向量寻址、页寻址和存储器位寻址共11种类型。
根据本发明的第十八方面的基于CISC结构的微控制器的指令实现方式,其特征在于指令执行的顺序是在时钟的第一相读入指令码并译码,同时处理中断等,第二相读内存单元或者寄存器的数据并存储,第三相执行ALU操作,完成指令要求的各种运算或者偏移量的计算,第四相将指令运算得的结果写入内存及相关寄存器,同时在每一相进行相关标志位的设置和指令周期存储计算的操作。
根据本发明的第十九方面的基于CISC结构的微控制器的指令实现方式,其特征在于中断处理的方式为当中断请求发生时,置位中断锁存器,在指令执行的第一相时钟时检测中断锁存器,响应中断,并清中断使能标志和中断锁存器,PC在中断程序执行前后自动压栈和出栈;所述的中断的种类包括软件中断、外部中断、定时器中断、WDT中断、串行接口中断,中断可嵌套,除软件中断和WDT中断外可控制中断源屏蔽。
附图说明
图1为本发明微处理器核的内部结构示意图。
图2为指令执行硬件结构示意图。
图3为指令执行节拍流程示意图。
图4为内存分配和地址映射示意图。
图5为本发明微控制器核的***模块资源配置示意图。
图6为复位电路示意图。
图7为中断处理过程示意图。
具体实施方式
下面结合附图对本发明的微处理器的构架和实现方式做详细说明。
本发明微处理器核的结构如图1所示。时钟发生器产生基本时钟,并分频,提供内部CPU核和外部***器件所需要的时钟信号。程序存储器与数据存储器有各自的数据总线。执行时,首先读取指令码,然后译码。译码是根据微码的定义,以及寻址方式的不同,将操作数或者操作码分别存储于操作数寄存器、微指令码寄存器、内存或者特殊功能寄存器(不包括SR区域)。根据译码后得到的指令的类型,将操作数或者需要计算的地址送入ALU进行运算。然后,存储运算的结果,写入寄存器或者内存单元。然后再读入下一字节的指令,进行译码、ALU运算、回写存储数据,以此类推,直到指令结束。由于本微处理器的指令集为变长的CISC指令,每条指令长度不同,指令周期从1个机器周期到10个机器周期不等。在指令执行的过程中,要对每条指令所执行到的机器周期和PC进行计数,以控制指令的运行。
指令处理执行部分的硬件结构如图2所示,首先根据复位向量找到程序的入口地址,PC指向程序存储器的程序入口单元,从程序存储器读入指令,通过指令译码器进行译码。如果是操作码,存入操作码寄存器;如果是操作数,根据对操作码的判断确定是写入数据存储器还是要做为立即数送入ALU进行运算。数据准备好后,即可进行ALU运算操作。运算的结果存入寄存器或者数据存储器单元。当执行调用、返回等指令时,会对程序指针进行压栈和出栈操作;执行跳转等指令时,有指针偏移操作;同时在每读下一字节指令时,会对PC有加1的操作。这些构成PC的来源,也是保证程序正常执行的关键因素之一。
指令处理的基本时序如图3所示。由主时钟分频后获得的四相时钟(CLK1、CLK2、CLK3和CLK4)来控制。每个机器周期根据4相时钟分为4个节拍,每一节拍对应一相时钟。对读入的每个微码在4相时钟分别执行以下操作:CLK1取指译码(包括设置标志位和中断处理)、CLK2读所需要的寄存器中的数据、CLK3进行ALU运算、CLK4存储运算结果(包括调整PC指针)。同时,根据微码判断并记录当前指令总的周期数,并在读入指令下一个字节的时候递减,调整PC,直至当前指令的最后一个周期,指向下一条指令,标志位清零,开放中断,开始执行下一条指令。如此循环操作,直到程序结束。
本微处理器包括软件中断、外部中断、定时器中断、WDT中断等常用基本中断。可控制中断源屏蔽,其中软件中断和WDT中断不可屏蔽和嵌套。当有中断请求时,设置中断请求标志并锁存在中断锁存器中,同时自动PC压栈。执行完当前指令后,响应中断,设置中断使能标志使响应当前中断过程中禁止可屏蔽中断。中断执行完或复位后,开放锁存。中断处理过程见图7所示。
本发明微处理器的指令集为复杂指令集,数据总线宽度为8位,采用单级流水线处理和执行指令,可连续寻址64K字节的地址空间。这64K空间分成4个地址空间,分别为程序存储器ROM、数据存储器RAM、特殊功能寄存器SR和数据缓冲寄存器BR。使用内存映射输入/输出***,所有的I/O寄存器都映射在SR或者BR地址空间。芯片内部共有16组通用寄存器,每组8个,共128个通用寄存器,分配在RAM地址空间的前128个字节。内存分配见图4所示。
为了***的安全和功耗管理,***复位采用多源复位,如图6所示。包括上电复位、软件复位、时钟检测复位、地址陷阱复位、WDT复位。其中上电复位为大于4个时钟周期的低电平复位;当PC指向RAM或者特殊寄存器SR区域时,产生地址陷阱复位信号,重新启动***;WDT在允许工作状态下,若CPU没有按正常工作状态清WDT,WDT计数溢出时会产生复位信号。
本发明处理器内核可方便的扩展各类通用的外设和通讯接口,包括同步串行接口、高速串行输出、I2C总线、LCD驱动器、A/D转换器、定时器/计数器等等,同时也可根据微码定义对151条指令进行扩展。一个微处理器配置外设资源的应用示意图见图5所示。
本发明微处理器的一种典型实现方式如图5所示。“1”为***时钟发生器,产生基本时钟。其中包含一个时序发生器,经分频产生主***时钟和***设备的工作时钟。可输出所需要的分频脉冲到外部端口上,并产生基本定时、WDT、串口、释放复位等***所需要的各种时钟。“2”是本微处理器的CPU核,是本发明的核心部分。参考图1,包含指令译码器、指令寄存器、ALU、内部堆栈、专用寄存器、中断处理模块以及读写控制电路。***上电复位以后,根据复位指针从程序存储器中找到程序的入口地址,以字节为单位读入要执行的指令并存储。然后对指令进行译码。译码时根据微码的定义,执行相应的操作。微码的编码分为两大类,单字节编码和双字节编码。表1是对每类编码中每个字节微码含义的解释。
表1指令微码定义表
单字节微码 | 指令类型 | 寻址方式 | 双字节微码 | 指令 | 寻址方式 |
00000000 | swi | 00000001 | jmp | ||
00000001 | jmp | 00000011 | cal | ||
00000010 | calp | 00101*** | xorb | ||
00000011 | cal | 00110*** | movb | ||
00100*** | movb | 00111*** | cplb | ||
00101000 | jf | 10110*** | clrb | ||
00101001 | jt | 10111*** | setb | ||
00101100 | jnc | 11100000 | rshrcf | ||
00101101 | jc | 11100001 | rshlcf | ||
00101110 | jnz | 11100010 | shrcf | ||
00101111 | jz | 11100011 | shlcf | ||
0011**** | calv | 11110100 | dsa | ||
010***** | sjf | 11110101 | daa |
011***** | sjt | 11110110 | rshrm | ||
10110*** | clrb | 11110111 | rshlm | ||
10111*** | setb | 11111000 | push | ||
11111000 | push | 11111001 | pop | ||
11111001 | pop | 11111011 | retn | ||
11111010 | ret | 11111110 | swap | ||
11111011 | reti | 10100*** | mov | 目标为寄存器寻址 | |
11111100 | div | 111010** | mov | 目标为寄存器对寻址 | |
11111101 | mul | 10101*** | mov | 源为寄存器寻址 | |
11111111 | nop | 111011** | mov | 源为寄存器对寻址 | |
11001*** | mov | 目标为寄存器寻址源为立即数 | 11011001 | mov | 目标为直接寻址 |
11110000 | mov | 目标为RBS源为立即数 | 11011000 | mov | 目标为寄存器间接寻址 |
11010011 | mov | 目标为直接寻址 | 11010011 | mov | 源为立即数 |
源为立即数 | |||||
11010010 | mov | 目标为寄存器间接寻址源为立即数 | 10000000 | cmp | 目标为隐含寻址A |
00000101 | mov | 目标为堆栈指针SP源为立即数 | 10011000 | cmp | 源为寄存器间接寻址 |
10000000 | cmp | 目标为隐含寻址A源为直接寻址 | 10001000 | cmp | 源为立即数 |
10000110 | add | 目标为隐含寻址A源为直接寻址 | 10000110 | add | 目标为隐含寻址A |
10000100 | sub | 目标为隐含寻址A源为直接寻址 | 10011110 | add | 源为寄存器间接寻址 |
10000011 | and | 目标为隐含寻址A源为直接寻址 | 10001110 | add | 源为立即数 |
10000001 | or | 目标为隐含寻址A源为直接寻址 | 10000100 | sub | 目标为隐含寻址A |
10000010 | xor | 目标为隐含寻址A | 10011100 | sub | 源为寄存器间接 |
源为直接寻址 | 寻址 | ||||
10001100 | sub | 源为立即数 | |||
10000011 | and | 目标为隐含寻址A | |||
10011011 | and | 源为寄存器间接寻址 | |||
10001011 | and | 源为立即数 | |||
10000001 | or | 目标为隐含寻址A | |||
10011001 | or | 源为寄存器间接寻址 | |||
10001001 | or | 源为立即数 | |||
10000010 | xor | 目标为隐含寻址A | |||
10011010 | xor | 源为寄存器间接寻址 | |||
10001010 | xor | 源为立即数 | |||
00010*** | 寄存器寻址 | ||||
00011000 | 前减1寄存器 |
间接寻址 | |||||
00011001 | 后加1寄存器间接寻址 | ||||
00011011 | 变址寻址 | ||||
00011111 | 直接寻址 |
本发明的微处理器的指令长度为1-4个字节,执行周期1-10个不等。根据译码结果,分为立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、隐含寻址、相对寻址、变址寻址、绝对寻址、向量寻址、页寻址、存储器位寻址共11种类型。如图2所示,译码后提取出立即数或者寄存器信息或者RAM的直接地址,通过多路选择器进入ALU进行运算,结果输出到RAM或者相应的寄存器单元。除常规的PC加1以外,根据不同的指令对PC指针进行调整,包括偏移量寻址、内部堆栈的地址、跳转指令的地址等。在译码器对读入的微码进行辨识以后,除了对当前操作码或者立即数进行相应的操作以外,还要判断指令总的执行周期数并记录,以此作为标志判断指令是否执行完毕,是否需要清除或者设置相应的标志寄存器,以保证***执行时序的正确性。“3”为***的复位电路,包括时钟检测复位、地址陷阱复位、WDT复位、软件复位及外部复位电路。可参考图6所示。除外部上电复位外,当***时钟停止工作,或者PC指针指向非ROM区域,或者CPU工作不正常而没有清WDT计数器时,会产生***复位信号使***复位。“4”是定时器/计数器,本***包含两个16位和两个8位多功能定时器/计数器。“5”是输入/输出端口。为双向端口,且端口可复用。“6”是ADC与数字逻辑部分的接口电路。“7”是ADC模块,本***为8位8通道的逐次逼近ADC。“8”是中断控制器。当中断请求发生并向CPU申请中断响应时,置位中断锁存器,在指令执行的第一相时钟时检测中断锁存器,发现有中断,响应中断,清中断使能标志和中断锁存器,PC自动压栈,根据向量地址表读中断服务程序的入口地址,写入PC。然后执行中断服务程序。返回后,原来的PC指针自动出栈,继续执行主程序。其时序图见图7所示。“9”是程序存储器ROM。本微处理器共有16K的EPROM,和数据存储器以及特殊寄存器和数据缓冲区连续寻址,便于访问。“10”是监视定时器WDT。在CPU工作不正常时产生中断或者内部复位信号,重启***使之正常工作,提高了***可靠性。“11”是基本定时器,提供定时,可产生基本定时器中断。“12”是时钟同步串行接口,用于器件之间的通信,可连续传送8个字节的数据。“13”是静态数据存储器RAM。参考图4,本微处理器有512字节8位的RAM,其中前128字节为通用寄存器区域,包含16组8位通用寄存器。后384字节为数据缓存区域。堆栈可设在RAM中通用寄存器以外的任意区域。当PC指向RAM区域时,会产生地址陷阱复位。这里的通用寄存器与特殊寄存器SR是分开的,另外还有数据缓冲寄存器BR和程序存储器ROM。通过地址映射电路可以连续的寻址64K地址空间。
本微处理器为CISC结构,支持各类常见的微处理器指令。共包含151条基本指令,包括数据传送交换、算术逻辑运算、比较、乘除法、移位、循环、半字节操作、位操作、跳转、调用返回、进栈退栈、软中断以及空操作类指令。根据微码的定义,指令可根据微码扩展,使用灵活。以下是本发明的基本指令集。
1、指令:mov
(1)助记符:mov p,q
编码:0001 0***1110 10**
操作:p<-q
影响标志位:JF=1,ZF=z
描述:将寄存器q的值赋给寄存器p。JF置1;传送给寄存器p的值为0x00H时ZF置1,否则清零。
(2)助记符:mov p,(x)
编码:0001 1111 1010 0***
操作:p<-(x)
影响标志位:JF=1,ZF=z
描述:将内存地址为x处的值赋给寄存器p。JF置1;传送给寄存器p的值为0x00H时ZF置1,否则清零。
(3)助记符:mov p,(HL+)
编码:0001 1001 1010 0***
操作:p<-(HL),HL<-HL+1
影响标志位:JF=1,ZF=z
描述:将内存地址为寄存器组HL内容处的值赋给寄存器p,然后HL的内容加1。JF置1;传送给寄存器p的值为0x00H时ZF置1,否则清零。
(4)助记符:mov p,(-HL)
编码:0001 1000 1010 0***
操作:HL<-HL-1,p<-(HL)
影响标志位:JF=1,ZF=z
描述:先将HL的内容减1,再将内存地址为寄存器组HL内容处的值赋给寄存器置1;传送给寄存器p的值为0x00H时ZF置1,否则清零。
(5)助记符:mov p,(HL+d)
编码:0001 1011 1010 0***
操作:p<-(HL+d)
影响标志位:JF=1,ZF=z
描述:将内存地址为寄存器组HL内容加d处的值赋给寄存器p。JF置1;传送给寄存器p的值为0x00H时ZF置1,否则清零。
(6)助记符:mov pp,(x)
编码:0001 1111 0001 10**
操作:pp<-(x+1,x)
影响标志位:JF=1
描述:将内存地址为x和x+1处的值赋给寄存器组pp。JF置1。
(7)助记符:mov pp,(HL+d)
编码:0001 1011 1110 10**
操作:pp<-(HL+d+1,HL+d)
影响标志位:JF=1
描述:将内存地址为HL内容加d+1和HL内容加d处的值赋给寄存器组pp。JF置1。
(8)助记符:mov (x),p
编码:0000 1111 1010 1***
操作:(x)<-p
影响标志位:JF=1
描述:将寄存器p的值赋给内存地址为x的内存单元。JF置1。
(9)助记符:mov (HL+),p
编码:0000 1001 1010 1***
操作:(HL)<-p,HL<-HL+1
影响标志位:JF=1
描述:将寄存器p的值赋给内存地址为HL值的内存单元,然后HL的内容加1。JF置1。
(10)助记符:mov (-HL),p
编码:0000 1000 1010 1***
操作:HL<-HL-1,(HL)<-p
影响标志位:JF=1
描述:先将HL的内容减1,然后将寄存器p的值赋给内存地址为HL值的内存单元。JF置1。
(11)助记符:mov (HL+d),p
编码:0000 1011 1010 1***
操作:(HL+d)<-p
影响标志位:JF=1
描述:将寄存器p的值赋给内存地址为HL+d值的内存单元。JF置1。
(12)助记符:mov (x),pp
编码:0000 1111 1110 11**
操作:(x+1,x)<-pp
影响标志位:JF=1
描述:将寄存器pp的值赋给内存地址为x+1和x的内存单元。JF置1。
(13)助记符:mov (HL+d),pp
编码:0000 1011 1110 11**
操作:(HL+d+1,HL+d)<-pp
影响标志位:JF=1
描述:将寄存器pp的值赋给内存地址为HL内容加d+1和HL内容加d的内存单元。JF置1。
(14)助记符:mov (x),(y)
编码:1101 1001
操作:(x)<-(y)
影响标志位:JF=1,ZF=z
描述:将内存地址为y的内存单元值赋给内存地址为x的内存单元。JF置1;如果传送的数据是0x00H,则ZF置1,否则清零。
(15)助记符:mov (x),(HL+d)
编码:0001 1011 1101 1001
操作:(x)<-(HL+d)
影响标志位:JF=1
描述:将内存地址为HL内容加d的内存单元值赋给内存地址为x的内存单元。JF置1。
(16)助记符:mov (HL),(x)
编码:0001 1111 1101 1000
操作:(HL)<-(x)
影响标志位:JF=1;ZF=z
描述:将内存地址为x的内存单元值赋给的内存地址为HL内容加d的内存单元。JF置1;如果传送的数据是0x00H,则ZF置1,否则清零。
(17)助记符:mov (HL),(HL+d)
编码:0001 1011 1101 1000
操作:(HL)<-(HL+d)
影响标志位:JF=1;ZF=z
描述:将内存地址为x的内存单元值赋给的内存地址为HL内容加d的内存单元。JF置1;如果传送的数据是0x00H,则ZF置1,否则清零。
(18)助记符:mov p,n
编码:1100 1***
操作:p<-n
影响标志位:JF=1
描述:将立即数n赋给寄存器p。JF置1。
(19)助记符:mov SP,mn
编码:0000 0101
操作:SP<-mn
影响标志位:JF=1
描述:将立即数mn赋给堆栈指针寄存器SP。JF置1。
(20)助记符:mov RBS,n
编码:1111 0000 1111
操作:RBS<-n
影响标志位:JF=1
描述:将立即数n赋给寄存器RBS。JF置1。
(21)助记符:mov (x),n
编码:1101 0011
操作:(x)<-n
影响标志位:JF=1
描述:将立即数n赋给内存地址为x的内存单元。JF置1。
(22)助记符:mov (HL),n
编码:1101 0010
操作:(HL)<-n
影响标志位:JF=1
描述:将立即数n赋给内存地址为HL值的内存单元。JF置1。
(23)助记符:mov (HL+),n
编码:0000 1001 1101 0011
操作:(HL)<-n;HL<-HL+1
影响标志位:JF=1
描述:将立即数n赋给内存地址为HL值的内存单元,然后HL的内容加1。JF置1。
(24)助记符:mov (-HL),n
编码:0000 1001 1101 0011
操作:HL<-HL-1;(HL)<-n
影响标志位:JF=1
描述:先将HL的内容减1,然后将立即数n赋给内存地址为HL值的内存单元。JF置1。
(25)助记符:mov (HL+d),n
编码:0000 1011 1101 0011
操作:(HL+d)<-n
影响标志位:JF=1
描述:将立即数n赋给内存地址为HL值加上d的内存单元。JF置1。
2、指令:cmp
(1)助记符:cmp A,(x)
编码:1000 0000
操作:A-(x)
影响标志位:JF=z;ZF=z;CF=c;HF=h
描述:比较寄存器A和内存地址为x的内存单元中的值。JF结果同ZF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(2)助记符:cmp A,(HL+)
编码:0001 1001 1000 0000
操作:A-(HL);HL<-HL+1
影响标志位:JF=z;ZF=z;CF=c;HF=h
描述:比较寄存器A和内存地址为HL的内存单元中的值,然后HL内容加1。JF结果同ZF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(3)助记符:cmp A,(-HL)
编码:0001 1000 1000 0000
操作:HL<-HL-1;A-(HL)
影响标志位:JF=z;ZF=z;CF=c;HF=h
描述:先将HL内容减1,再比较寄存器A和内存地址为HL的内存单元中的值。JF结果同ZF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(4)助记符:cmp A,(HL+d)
编码:0001 1011 1000 0000
操作:A-(HL+d)
影响标志位:JF=z;ZF=z;CF=c;HF=h
描述:比较寄存器A和内存地址为HL加d的内存单元中的值。JF结果同ZF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(5)助记符:cmp (x),(HL)
编码:0001 1111 1001 1000
操作:(x)-(HL)
影响标志位:JF=z;ZF=z;CF=c;HF=h
描述:比较内存地址为x和内存地址为HL值的内存单元中的值。JF结果同ZF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(6)助记符:cmp (HL+d),(HL)
编码:00]01 1011 1001 1000
操作:(HL+d)-(HL)
影响标志位:JF=z;ZF=z;CF=c;HF=h
描述:比较内存地址为HL值加d和内存地址为HL值的内存单元中的值。JF结果同ZF;如做减法结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(7)助记符:cmp (x),n
编码:0001 1111 1000 1000
操作:(x)-n
影响标志位:JF=z;ZF=z;CF=c;HF=h
描述:比较内存地址为x内存单元中的值和立即数n。JF结果同ZF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(8)助记符:cmp (HL+),n
编码:0001 1001 1000 1000
操作:(HL+)-n;HL<-HL+1
影响标志位:JF=z;ZF=z;CF=c;HF=h
描述:比较内存地址为HL值的内存单元中的值和立即数n,然后HL的内容加1。JF结果同ZF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(9)助记符:cmp (-HL),n
编码:0001 1000 1000 1000
操作:HL<-HL-1;(HL)-n
影响标志位:JF=z;ZF=z;CF=c;HF=h
描述:先将HL内容减1,再比较内存地址为HL值的内存单元中的值和立即数n。JF结果同ZF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第3位借位时HF置1。
(10)助记符:cmp (HL+d),n
编码:0001 1011 1000 1000
操作:(HL+d)-n
影响标志位:JF=z;ZF=z;CF=c;HF=h
描述:比较内存地址为HL加d值的内存单元中的值和立即数n。JF结果同ZF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
3、指令:add
(1)助记符:add A,(x)
编码:1000 0110
操作:A<-A+(x)
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:内存地址为x的内存单元中的值加上寄存器A中的值,结果存放在寄存器A中。JF结果同ZF;当做加法,结果为0x00H时ZF置1;最高位存在进位CF置1;存在向第4位进位时HF置1。
(2)助记符:add A,(HL+)
编码:0001 1001 1000 0000
操作:A<-A+(HL);HL<-HL+1
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:内存地址为HL内存单元中的值加上寄存器A中的值,结果存放在寄存器A中,然后HL内容加1。JF结果同CF;当做加法,结果为0x00H时ZF置1;最高位存在进位CF置1;存在从第3位进位时HF置1。
(3)助记符:add A,(-HL)
编码:0001 1000 1000 0110
操作:HL<-HL-1;A<-A+(HL)
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:先将HL内容减1,再将内存地址为HL内存单元中的值加上寄存器A中的值,结果存放在寄存器A中。JF结果同CF;当做加法,结果为0x00H时ZF置1;最高位存在进位CF置1;存在从第3位进位时HF置1。
(4)助记符:add A,(HL+d)
编码:0001 1011 1000 0110
操作:A<-A+(HL+d)
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:将内存地址为HL加d的内存单元中的值加寄存器A的值,结果存放在寄存器A中。JF结果同CF;当做加法,结果为0x00H时ZF置1;最高位存在进位CF置1;存在从第3位进位时HF置1。
(5)助记符:add (x),(HL)
编码:0001 1111 1001 1110
操作:(x)<-(x)+(HL)
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:将内存地址为x和内存地址为HL内存单元中的值相加,结果存放在内存地址为x的内存单元中。JF结果同CF;当做加法,结果为0x00H时ZF置1;最高位存在进位CF置1;存在从第3位进位时HF置1。
(6)助记符:add (HL+d),(HL)
编码:0001 1011 1001 1110
操作:(HL+d)<-(HL+d)+(HL)
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:将内存地址为x和内存地址为HL加d的内存单元中的值相加,结果存放在内存地址为HL加d的内存单元中。JF结果同CF;如做加法结果为0x00H时ZF置1;最高位存在进位CF置1;存在从第3位进位时HF置1。
(7)助记符:add (x),n
编码:0001 1111 1000 1110
操作:(x)-n
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:将内存地址为x内存单元中的值和立即数n相加,结果存放在内存地址为x内存单元中。JF结果同CF;当做加法,结果为0x00H时ZF置1;最高位存在进位CF置1;存在从第3位进位时HF置1。
(8)助记符:add (HL+),n
编码:0001 1001 1000 1110
操作:(HL)<-(HL)+n;HL<-HL+1
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:将内存地址为HL值的内存单元中的值和立即数n相加,结果存放在内存地址为HL值的内存单元中,然后HL的内容加1。JF结果同CF;当做加法,结果为0x00H时ZF置1;最高位存在进位CF置1;存在从第3位进位时HF置1。
(9)助记符:add (-HL),n
编码:0001 1000 1000 1000
操作:HL<-HL-1;(HL)<-(HL)+n
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:先将HL内容减1,然后将内存地址为HL值的内存单元中的值和立即数n相加,结果存放在内存地址为HL值的内存单元中。JF结果同CF;当做加法,结果为0x00H时ZF置1;最高位存在进位CF置1;存在从第3位进位时HF置1。
(10)助记符:add (HL+d),n
编码:0001 1011 1000 1000
操作:(HL+d)<-(HL)+n
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:将内存地址为HL加d的内存单元中的值和立即数n相加,其结果存放在内存地址为HL值的内存单元中。JF结果同CF;当做加法,结果为0x00H时ZF置1;最高位存在进位CF置1;存在从第3位进位时HF置1。
4、指令:sub
(1)助记符:sub A,(x)
编码:1000 0100
操作:A<-A-(x)
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:寄存器A中的值减去内存地址为x的内存单元中的值,结果存放在寄存器A中。JF结果同ZF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在向第4位借位时HF置1。
(2)助记符:sub A,(HL+)
编码:0001 1001 1000 0100
操作:A<-A-(HL);HL<-HL+1
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:寄存器A中的值减去内存地址为HL的内存单元中的值,结果存放在寄存器A中,然后HL内容加1。JF结果同CF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(3)助记符:sub A,(-HL)
编码:0001 1000 1000 0100
操作:HL<-HL-1;A<-A-(HL)
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:先将HL内容减1,然后将寄存器A中的值减去内存地址为HL的内存单元中的值,结果存放在寄存器A中。JF结果同CF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(4)助记符:sub A,(HL+d)
编码:0001 1011 1000 0100
操作:A<-A-(HL+d)
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:寄存器A的值减去内存地址为HL加d的内存单元中的值,结果存放在寄存器A中。JF结果同CF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(5)助记符:sub (x),(HL)
编码:0001 1111 1001 1100
操作:(x)<-(x)-(HL)
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:将内存地址为x的内存单元值减去内存地址为HL内存单元中值,结果存放在内存地址为x的内存单元中。JF结果同CF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(6)助记符:sub (HL+d),(HL)
编码:0001 1011 1001 1100
操作:(HL+d)<-(HL+d)-(HL)
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:将内存地址为x的内存单元值减去内存地址为HL加d的内存单元中的值,结果存放在内存地址为HL加d的内存单元中。JF结果同CF;如做减法结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(7)助记符:sub (x),n
编码:0001 1111 1000 1100
操作:(x)<-(x)-n
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:将内存地址为x内存单元中的值减去立即数n,结果存放在内存地址为x内存单元中。JF结果同CF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(8)助记符:sub (HL+),n
编码:0001 1001 1000 1100
操作:(HL)<-(HL)-n;HL<-HL+1
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:将内存地址为HL值的内存单元值减去立即数n,结果存放在内存地址为HL值的内存单元中,然后HL的内容加1。JF结果同CF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(9)助记符:sub (-HL),n
编码:0001 1000 1000 1100
操作:HL<-HL-1;(HL)<-(HL)-n
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:先将HL内容减1,然后将内存地址为HL值的内存单元值减去立即数n,结果存放在内存地址为HL值的内存单元中。JF结果同CF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
(10)助记符:sub (HL+d),n
编码:0001 1011 1000 1100
操作:(HL+d)<-(HL)-n
影响标志位:JF=c;ZF=z;CF=c;HF=h
描述:内存地址为HL加d的内存单元值减去立即数n,其结果存放在内存地址为HL值的内存单元中。JF结果同CF;当做减法,结果为0x00H时ZF置1;最高位存在借位CF置1;存在从第4位借位时HF置1。
5、指令:and
(1)助记符:and A,(x)
编码:1000 0011
操作:A<-A&(x)
影响标志位:JF=z;ZF=z;
描述:寄存器A中的值和内存地址为x的内存单元中的值相与,结果存放在寄存器A中。JF结果同ZF;相与的结果为0x00H时ZF置1,否则清零。
(2)助记符:and A,(HL+)
编码:0001 1001 1000 0011
操作:A<-A&(HL);HL<-HL+1
影响标志位:JF=z;ZF=z;
描述:寄存器A中的值和内存地址为HL的内存单元中的值相与,结果存放在寄存器A中,然后HL内容加1。JF结果同ZF;相与的结果为0x00H时ZF置1,否则清零。
(3)助记符:and A,(-HL)
编码:0001 1000 1000 0011
操作:HL<-HL-1;A<-A&(HL)
影响标志位:JF=z;ZF=z;
描述:先将HL内容减1,然后将寄存器A中的值和内存地址为HL的内存单元中的值相与,结果存放在寄存器A中。JF结果同ZF;相与的结果为0x00H时ZF置1,否则清零。
(4)助记符:and A,(HL+d)
编码:0001 1011 1000 0011
操作:A<-A&(HL+d)
影响标志位:JF=z;ZF=z;
描述:寄存器A的值和内存地址为HL加d内存单元中的值相与,结果存放在寄存器A中。JF结果同ZF;相与的结果为0x00H时ZF置1,否则清零。
(5)助记符:and (x),(HL)
编码:0001 1111 1001 1011
操作:(x)<-(x)&(HL)
影响标志位:JF=z;ZF=z;
描述:将内存地址为x的内存单元值和内存地址为HL内存单元中值相与,结果存放在内存地址为x的内存单元中。JF结果同ZF;相与的结果为0x00H时ZF置1,否则清零。
(6)助记符:and (HL+d),(HL)
编码:0001 1011 1001 1011
操作:(HL+d)<-(HL+d)&(HL)
影响标志位:JF=z;ZF=z;
描述:将内存地址为x的内存单元值和内存地址为HL加d的内存单元中的值相与,结果存放在内存地址为HL加d的内存单元中。JF结果同ZF;相与的结果为0x00H时ZF置1,否则清零。
(7)助记符:and (x),n
编码:0001 1111 1000 1011
操作:(x)<-(x)&n
影响标志位:JF=z;ZF=z;
描述:将内存地址为x内存单元中的值和立即数n相与,结果存放在内存地址为x内存单元中。JF结果同ZF;相与的结果为0x00H时ZF置1,否则清零。
(8)助记符:and (HL+),n
编码:0001 1001 1000 1011
操作:(HL)<-(HL)&n;HL<-HL+1
影响标志位:JF=z;ZF=z;
描述:将内存地址为HL值的内存单元值和立即数n相与,结果存放在内存地址为HL值的内存单元中,然后HL的内容加1。JF结果同ZF;相与的结果为0x00H时ZF置1,否则清零。
(9)助记符:and (-HL),n
编码:0001 1000 1000 1011
操作:HL<-HL-1;(HL)<-(HL)&n
影响标志位:JF=z;ZF=z;
描述:先将HL内容减1,然后将内存地址为HL值的内存单元值和立即数n相与,其结果存放在内存地址为HL值的内存单元中。JF结果同ZF;相与的结果为0x00H时ZF置1,否则清零。
(10)助记符:and (HL+d),n
编码:0001 1011 1000 1011
操作:(HL+d)<-(HL)&n
影响标志位:JF=z;ZF=z;
描述:将内存地址为HL加d的内存单元值和立即数n相与,其结果存放在内存地址为HL值的内存单元中。JF结果同ZF;相与的结果为0x00H时ZF置1,否则清零。
6、指令:or
(1)助记符:or A,(x)
编码:1000 0001
操作:A<-A|(x)
影响标志位:JF=z;ZF=z;
描述:寄存器A中的值和内存地址为x的内存单元中的值相或,结果存放在寄存器A中。JF结果同ZF;相或的结果为0x00H时ZF置1,否则清零。
(2)助记符:or A,(HL+)
编码:0001 1001 1000 0001
操作:A<-A|(HL);HL<-HL+1
影响标志位:JF=z;ZF=z;
描述:寄存器A中的值和内存地址为HL的内存单元中的值相或,结果存放在寄存器A中,然后HL内容加1。JF结果同ZF;相或的结果为0x00H时ZF置1,否则清零。
(3)助记符:or A,(-HL)
编码:0001 1000 1000 0001
操作:HL<-HL-1;A<-A|(HL)
影响标志位:JF=z;ZF=z;
描述:先将HL内容减1,然后将寄存器A中的值和内存地址为HL的内存单元中的值相或,结果存放在寄存器A中。JF结果同ZF;相或的结果为0x00H时ZF置1,否则清零。
(4)助记符:or A,(HL+d)
编码:0001 1011 1000 0001
操作:A<-A|(HL+d)
影响标志位:JF=z;ZF=z;
描述:寄存器A的值和内存地址为HL加d内存单元中的值相或,结果存放在寄存器A中。JF结果同ZF;相或的结果为0x00H时ZF置1,否则清零。
(5)助记符:or (x),(HL)
编码:0001 1111 1001 1001
操作:(x)<-(x)|(HL)
影响标志位:JF=z;ZF=z;
描述:将内存地址为x的内存单元值和内存地址为HL内存单元中值相或,结果存放在内存地址为x的内存单元中。JF结果同ZF;相或的结果为0x00H时ZF置1,否则清零。
(6)助记符:or (HL+d),(HL)
编码:0001 1011 1001 1001
操作:(HL+d)<-(HL+d)|(HL)
影响标志位:JF=z;ZF=z;
描述:将内存地址为x的内存单元值和内存地址为HL加d的内存单元中的值相或,结果存放在内存地址为HL加d的内存单元中。JF结果同ZF;相或的结果为0x00H时ZF置1,否则清零。
(7)助记符:or (x),n
编码:0001 1111 1000 1001
操作:(x)<-(x)|n
影响标志位:JF=z;ZF=z;
描述:将内存地址为x内存单元中的值和立即数n相或,结果存放在内存地址为x内存单元中。JF结果同ZF;相或的结果为0x00H时ZF置1,否则清零。
(8)助记符:or (HL+),n
编码:0001 1001 1000 1001
操作:(HL)<-(HL)|n;HL<-HL+1
影响标志位:JF=z;ZF=z;
描述:将内存地址为HL值的内存单元值和立即数n相或,结果存放在内存地址为HL值的内存单元中,然后HL的内容加1。JF结果同ZF;相或的结果为0x00H时ZF置1,否则清零。
(9)助记符:or (-HL),n
编码:0001 1000 1000 1001
操作:HL<-HL-1;(HL)<-(HL)|n
影响标志位:JF=z;ZF=z;
描述:先将HL内容减1,然后将内存地址为HL值的内存单元值和立即数n相或,其结果存放在内存地址为HL值的内存单元中。JF结果同ZF;相或的结果为0x00H时ZF置1,否则清零。
(10)助记符:or (HL+d),n
编码:0001 1011 1000 1001
操作:(HL+d)<-(HL)|n
影响标志位:JF=z;ZF=z;
描述:将内存地址为HL加d的内存单元值和立即数n相或,其结果存放在内存地址为HL值的内存单元中。JF结果同ZF;相或的结果为0x00H时ZF置1,否则清零。
7、指令:xor
(1)助记符:xor A,(x)
编码:1000 0010
操作:A<-A xor(x)
影响标志位:JF=z;ZF=z;
描述:寄存器A中的值和内存地址为x内存单元中的值相异或,结果存放在寄存器A中。JF结果同ZF;相异或的结果为0x00H时ZF置1,否则清零。
(2)助记符:xor A,(HL+)
编码:0001 1001 1000 0010
操作:A<-A xor(HL);HL<-HL+1
影响标志位:JF=z;ZF=z;
描述:寄存器A中的值和内存地址为HL内存单元中的值相异或,结果存放在寄存器A中,然后HL内容加1。JF结果同ZF;相异或的结果为0x00H时ZF置1,否则清零。
(3)助记符:xor A,(-HL)
编码:0001 1000 1000 0010
操作:HL<-HL-1;A<-A xor(HL)
影响标志位:JF=z;ZF=z;
描述:先将HL内容减1,然后将寄存器A中的值和内存地址为HL的内存单元中的值相异或,结果存放在寄存器A中。JF结果同ZF;相异或的结果为0x00H时ZF置1,否则清零。
(4)助记符:xor A,(HL+d)
编码:0001 1011 1000 0010
操作:A<-A xor(HL+d)
影响标志位:JF=z;ZF=z;
描述:寄存器A的值和内存地址为HL加d内存单元的值相异或,结果存放在寄存器A中。JF结果同ZF;相异或的结果为0x00H时ZF置1,否则清零。
(5)助记符:xor (x),(HL)
编码:0001 1111 1001 1010
操作:(x)<-(x)xor(HL)
影响标志位:JF=z;ZF=z;
描述:将内存地址为x的内存单元值和内存地址为HL内存单元中值相异或,结果存放在内存地址为x的内存单元中。JF结果同ZF;相异或的结果为0x00H时ZF置1,否则清零。
(6)助记符:xor (HL+d),(HL)
编码:0001 1011 1001 1010
操作:(HL+d)<-(HL+d)xor(HL)
影响标志位:JF=z;ZF=z;
描述:将内存地址为x的内存单元值和内存地址为HL加d的内存单元中的值相异或,结果存放在内存地址为HL加d的内存单元中。JF结果同ZF;相异或的结果为0x00H时ZF置1,否则清零。
(7)助记符:xor (x),n
编码:0001 1111 1000 1010
操作:(x)<-(x)xor n
影响标志位:JF=z;ZF=z;
描述:将内存地址为x内存单元中的值和立即数n相异或,结果存放在内存地址为x内存单元中。JF结果同ZF;相异或的结果为0x00H时ZF置1,否则清零。
(8)助记符:xor (HL+),n
编码:0001 1001 1000 1010
操作:(HL)<-(HL)xor n;HL<-HL+1
影响标志位:JF=z;ZF=z;
描述:将内存地址为HL值的内存单元值和立即数n相异或,结果存放在内存地址为HL的内存单元中,然后HL内容加1。JF结果同ZF;相异或的结果为0x00H时ZF置1,否则清零。
(9)助记符:xor (-HL),n
编码:0001 1000 1000 1010
操作:HL<-HL-1;(HL)<-(HL)xor n
影响标志位:JF=z;ZF=z;
描述:先将HL内容减1,然后将内存地址为HL值的内存单元值和立即数n相异或,其结果存放在内存地址为HL值的内存单元中。JF结果同ZF;相异或的结果为0x00H时ZF置1,否则清零。
(10)助记符:xor (HL+d),n
编码:0001 1011 1000 1010
操作:(HL+d)<-(HL)xor n
影响标志位:JF=z;ZF=z;
描述:将内存地址为HL加d的内存单元值和立即数n相异或,结果存放在内存地址为HL值的内存单元中。JF结果同ZF;相异或的结果为0x00H时ZF置1,否则清零。
8、指令:daa
(1)助记符:daa p
编码:0001 0*** 1111 0101
操作:加法指令结果的16进制->BCD码
影响标志位:JF=c,ZF=z,CF=c,HF=h
描述:执行完加法指令后,把寄存器p中的16进制结果进行十进制调整,产生BCD码。调整后的结果仍回写到寄存器p。
9、指令:dsa
(1)助记符:dsa p
编码:0001 0*** 1111 0100
操作:减法指令结果的16进制->BCD码
影响标志位:JF=c,ZF=z,CF=c,HF=h
描述:执行完减法指令后,把寄存器p中的16进制结果进行十进制调整,产生BCD码。调整后的结果仍回写到寄存器p。
10、指令:mul
(1)助记符:mul w,a
编码:1111 1101
操作:w*a->wa
影响标志位:JF=z,ZF=z
描述:寄存器w与累加器a中的无符号数相乘,结果的高字节回写到w,低字节回写到a。当高字节为0时,标志JF和ZF置1;否则清0。
11、指令:div
(1)助记符:div wa,c
编码:1111 1100
操作:wa÷c(商)->a,余数->w
影响标志位:JF=z,ZF=z,CF=c
描述:寄存器对wa与寄存器c中的无符号数相除,商写到a,余数写到w。余数为0时,标志JF和ZF置1;否则清0。如果除数寄存器c中的数据为0,或者相除后商大于100H,标志CF置1;否则清0。
12、指令:shlcf
(1)助记符:shlcf p
编码:0001 0*** 1110 0011
操作:参见下列描述
影响标志位:JF=p[7],ZF=z,CF=p[7]
描述:寄存器p中的数据左移一位,原最高位p[7]写到标志位CF中,最低位补0。具体操作参见附图M-1。标志JF和CF等于寄存器原数据的最高位。如果移位后寄存器中的数据为0,则标志ZF置1,否则清0。
13、指令:shrcf
(1)助记符:shrcf p
编码:0001 0*** 1110 0010
操作:参见下列描述
影响标志位:JF=p[0],ZF=z,CF=p[0]
描述:寄存器p中的数据右移一位,原最低位p[0]写到标志位CF中,最高位补0。具体操作参见附图M-2。标志JF和CF等于寄存器原数据的最低位。如果移位后寄存器中的数据为0,则标志ZF置1,否则清0。
14、指令:rshlcf
(1)助记符:rshlcf p
编码:0001 0*** 1110 0001
操作:参见下列描述
影响标志位:JF=p[7],ZF=z,CF=p[7]
描述:寄存器p中的数据和标志位CF循环左移一位,寄存器原最高位p[7]写到标志位CF中,原标志位CF写到寄存器最低位p[0]。具体操作参见附图M-3。标志JF和CF等于寄存器原数据的最高位。如果移位后寄存器中的数据为0,则标志ZF置1,否则清0。
15、指令:rshrcf
(1)助记符:rshrcf p
编码:0001 0*** 1110 0000
操作:参见下列描述
影响标志位:JF=p[0],ZF=z,CF=p[0]
描述:寄存器p中的数据和标志位CF循环右移一位,寄存器原最低位p[0]写到标志位CF中,原标志位CF写到寄存器最高位p[7]。具体操作参见附图M-4。标志JF和CF等于寄存器原数据的最低位。如果移位后寄存器中的数据为0,则标志ZF置1,否则清0。
16、指令:swap
(1)助记符:swap p
编码:0001 0*** 1111 1110
影响标志位:JF=1
描述:寄存器p中的高、低半位元组交换位置。标志JF置1。
17、指令:rshlm
(1)助记符:rshlm a,(x)
编码:0001 1111 1111 0111
操作:参见下列描述
影响标志位:JF=1
描述:累加器a的低半位元组和直接寻址单元数据的高、低半位元组循环左移,具体操作参见附图M-5。标志JF置1。
(2)助记符:rshlm a,(HL+)
编码:0001 1001 1111 0111
操作:参见下列描述
影响标志位:JF=1
描述:累加器a的低半位元组和由HL间接寻址单元数据的高、低半位元组循环左移,具体操作参见附图M-6。移位操作完成后,HL的内容累加1。标志JF置1。
(3)助记符:rshlm a,(-HL)
编码:0001 1000 1111 0111
操作:参见下列描述
影响标志位:JF=1
描述:HL的内容递减1。累加器a的低半位元组和由HL递减后间接寻址单元数据的高、低半位元组循环左移,具体操作参见附图M-7。标志JF置1。
(4)助记符:rshlm a,(HL+d)
编码:0001 1011 1111 0111
操作:参见下列描述
影响标志位:JF=1
描述:累加器a的低半位元组和由HL带偏移量间接寻址单元数据的高、低半位元组循环左移,具体操作参见附图M-8。标志JF置1。
18、指令:rshrm
(1)助记符:rshrm a,(x)
编码:0001 1111 1111 0110
操作:参见下列描述
影响标志位:JF=1
描述:累加器a的低半位元组和直接寻址单元数据的高、低半位元组循环右移,具体操作参见附图M-9。标志JF置1。
(2)助记符:rshrm a,(HL+)
编码:0001 1001 1111 0110
操作:参见下列描述
影响标志位:JF=1
描述:累加器a的低半位元组和由HL间接寻址单元数据的高、低半位元组循环右移,具体操作参见附图M-10。移位操作完成后,HL的内容累加1。标志JF置1。
(3)助记符:rshrm a,(-HL)
编码:0001 1000 1111 0110
操作:参见下列描述
影响标志位:JF=1
描述:HL的内容递减1。累加器a的低半位元组和由HL递减后间接寻址单元数据的高、低半位元组循环右移,具体操作参见附图M-11。标志JF置1。
(4)助记符:rshrm a,(HL+d)
编码:0001 1011 1111 0110
操作:参见下列描述
影响标志位:JF=1
描述:累加器a的低半位元组和由HL带偏移量间接寻址单元数据的高、低半位元组循环右移,具体操作参见附图M-12。标志JF置1。
19、指令clrb
(1)助记符:clrb (x).b
编码:1011 0***
操作:
(x).b->ZF,0->(x).b
影响标志位:JF=z,ZF=
(x).b
描述:将直接寻址单元的b位取反后写到标志ZF,之后将该位清0。标志JF同ZF。
(2)助记符:clrb (HL+).b
编码:0001 1001 1011 0***
操作:
(HL).b->ZF,0->(HL).b,HL+1->HL
影响标志位:JF=z,ZF=
(HL).b
描述:将寄存器对HL间接寻址单元的b位取反后写到标志ZF,之后将该位清0,最后把寄存器对HL中的数据累加1。标志JF同ZF。
(3)助记符:clrb (-HL).b
编码:0001 1000 1011 0***
操作:HL-1->HL,
(HL).b->ZF,0->(HL).b
影响标志位:JF=z,ZF=
(HL-1).b
描述:先把寄存器对HL中的数据递减1,再将寄存器对HL间接寻址单元的b位取反后写到标志ZF,之后将该位清0。标志JF同ZF。
(4)助记符:clrb (HL+d).b
编码:0001 1011 1011 0***
操作:
(HL+d).b->ZF,0->(HL+d).b
影响标志位:JF=z,ZF=
(HL+d).b
描述:将寄存器对HL带偏移量间接寻址单元的b位取反后写到标志ZF,之后将该位清0。标志JF同ZF。
20、指令setb
(1)助记符:setb (x).b
编码:1011 1***
操作:
(x).b->ZF,1->(x).b
影响标志位:JF=z,ZF=
(x).b
描述:将直接寻址单元的b位取反后写到标志ZF,之后将该位置1。标志JF同ZF。
(2)助记符:setb (HL+).b
编码:0001 1001 1011 1***
操作:
(HL).b->ZF,1->(HL).b,HL+1->HL
影响标志位:JF=z,ZF=
(HL).b
描述:将寄存器对HL间接寻址单元的b位取反后写到标志ZF,之后将该位置1,最后把寄存器对HL中的数据累加1。标志JF同ZF。
(3)助记符:setb (-HL).b
编码:0001 1000 1011 1***
操作:HL-1->HL,
(HL).b->ZF,1->(HL).b
影响标志位:JF=z,ZF=
(HL-1).b
描述:先把寄存器对HL中的数据递减1,再将寄存器对HL间接寻址单元的b位取反后写到标志ZF,之后将该位置1。标志JF同ZF。
(4)助记符:setb (HL+d).b
编码:0001 1011 1011 1***
操作:
(HL+d).b->ZF,1->(HL+d).b
影响标志位:JF=z,ZF=
(HL+d).b
描述:将寄存器对HL带偏移量间接寻址单元的b位取反后写到标志ZF,之后将该位置1。标志JF同ZF。
21、指令cplb
(1)助记符:cplb (x).b
编码:0001 1111 0011 1***
操作:
(x).b->ZF,
(x).b->(x).b
影响标志位:JF=z,ZF=
(x).b
描述:将直接寻址单元的b位取反后写到标志ZF,并将该位取反后回写。标志JF同ZF。
(2)助记符:cplb (HL+).b
编码:0001 1001 0011 1***
操作:
(HL).b->ZF,
(HL).b->(HL).b,HL+1->HL
影响标志位:JF=z,ZF=
(HL).b
描述:将寄存器对HL间接寻址单元的b位取反后写到标志ZF,并将该位取反后回写,最后把寄存器对HL中的数据累加1。标志JF同ZF。
(3)助记符:cplb (-HL).b
编码:0001 1000 0011 1***
操作:HL-1->HL,
(HL).b->ZF,
(HL).b->(HL).b
影响标志位:JF=z,ZF=
(HL-1).b
描述:先把寄存器对HL中的数据递减1,再将寄存器对HL间接寻址单元的b位取反后写到标志ZF,并将该位取反后回写。标志JF同ZF。
(4)助记符:cplb (HL+d).b
编码:0001 1011 0011 1***
操作:
(HL+d).b->ZF,
(HL+d).b->(HL+d).b
影响标志位:JF=z,ZF=
(HL+d).b
描述:将寄存器对HL带偏移量间接寻址单元的b位取反后写到标志ZF,并将该位取反后回写。标志JF同ZF。
22、指令movb
(1)助记符:movb cf,(x).b
编码:0010 0***
操作:(x).b->CF
影响标志位:JF=
c,CF=(x).b
描述:将直接寻址单元的b位写到标志CF。标志JF与CF相反。
(2)助记符:movb cf,(HL+).b
编码:0001 1001 0010 0***
操作:(HL).b->CF,HL+1->HL
影响标志位:JF=
c,CF=(HL).b
描述:将寄存器对HL间接寻址单元的b位写到标志CF,并把寄存器对HL中的数据累加1。标志JF与CF相反。
(3)助记符:movb cf,(-HL).b
编码:0001 1000 0010 0***
操作:HL-1->HL,(HL).b->CF
影响标志位:JF=
c,CF=(HL-1).b
描述:先把寄存器对HL中的数据递减1,再将寄存器对HL间接寻址单元的b位写到标志CF,标志JF与CF相反。
(4)助记符:movb cf,(HL+d).b
编码:0001 1011 0010 0***
操作:(HL+d).b->CF
影响标志位:JF=
c,CF=(HL+d).b
描述:将寄存器对HL带偏移量间接寻址单元的b位写到标志CF。标志JF与CF相反。
(5)助记符:movb (x).b,cf
编码:0001 1111 0011 0***
操作:CF->(x).b
影响标志位:JF=1
描述:将标志CF写到直接寻址单元的b位。标志JF置1。
(6)助记符:movb (HL+).b,cf
编码:0001 1001 0011 0***
操作:CF->(HL).b,HL+1->HL
影响标志位:JF=1
描述:将标志CF写到寄存器对HL间接寻址单元的b位,并把寄存器对HL中的数据累加1。标志JF置1。
(7)助记符:movb (-HL).b,cf
编码:0001 1000 0011 0***
操作:HL-1->HL,CF->(HL).b
影响标志位:JF=1
描述:先把寄存器对HL中的数据递减1,再将标志CF写到寄存器对HL间接寻址单元的b位,标志JF置1。
(8)助记符:movb (HL+d).b,cf
编码:0001 1011 0011 0***
操作:CF->(HL+d).b
影响标志位:JF=1
描述:将标志CF写到寄存器HL带偏移量间接寻址单元的b位,标志JF置1。
23、指令xorb
(1)助记符:xorb cf,(x).b
编码:0001 1111 0010 1***
操作:CF XOR(x).b->CF
影响标志位:JF=
c,CF=CF XOR(x).b
描述:将标志CF与直接寻址单元的b位相异或,结果回写到标志CF。标志JF与CF相反。
(2)助记符:xorb cf,(HL+).b
编码:0001 1001 0010 1***
操作:CF XOR(HL).b->CF,HL+1->HL
影响标志位:JF=
c,CF=CF XOR(HL).b
描述:将标志CF与寄存器对HL间接寻址单元的b位相异或,结果回写到标志CF,并把寄存器对HL中的数据累加1。标志JF与CF相反。
(3)助记符:xorb cf,(-HL).b
编码:0001 1000 0010 1***
操作:HL-1->HL,CF XOR(HL).b->CF
影响标志位:JF=
c,CF=CF XOR(HL-1).b
描述:先把寄存器对HL中的数据递减1,再将标志CF与寄存器对HL间接寻址单元的b位相异或,结果回写到标志CF,标志JF与CF相反。
(4)助记符:xorb cf,(HL+d).b
编码:0001 1011 0010 1***
操作:CF XOR(HL+d).b->CF
影响标志位:JF=
c,CF=CF XOR(HL+d).b
描述:将标志CF与寄存器对HL带偏移量间接寻址单元的b位相异或,结果回写到标志CF。标志JF与CF相反。
24、指令sjt
(1)助记符:sjt d
编码:011* ****
操作:参见下列描述
影响标志位:JF=1
描述:该指令跳转范围是向前15字节或退回16字节。如果标志JF为1,则程序跳转到当前指令首地址的d+2偏移量处,即程序计数器PC增加d;否则程序无跳转。标志JF置1。
25、指令sjf
(1)助记符:sjf d
编码:010* ****
操作:参见下列描述
影响标志位:JF=1
描述:该指令跳转范围是向前15字节或退回16字节。如果标志JF为0,则程序跳转到当前指令首地址的d+2偏移量处,即程序计数器PC增加d;否则程序无跳转。标志JF置1。
26、指令jt
(1)助记符:jt d
编码:0010 1001
操作:参见下列描述
影响标志位:JF=1
描述:该指令跳转范围是向前127字节或退回128字节。如标志JF为1,则程序跳转到当前指令首地址的d+2偏移量处,即程序计数器PC增加d;否则程序无跳转。标志JF置1。
27、指令jf
(1)助记符:jf d
编码:0010 1000
操作:参见下列描述
影响标志位:JF=1
描述:该指令跳转范围是向前127字节或退回128字节。如标志JF为0,则程序跳转到当前指令首地址的d+2偏移量处,即程序计数器PC增加d;否则程序无跳转。标志JF置1。
28、指令jz
(1)助记符:jz d
编码:0010 1111
操作:参见下列描述
影响标志位:JF=1
描述:该指令跳转范围是向前127字节或退回128字节。如标志ZF为1,则程序跳转到当前指令首地址的d+2偏移量处,即程序计数器PC增加d;否则程序无跳转。标志JF置1。
29、指令jnz
(1)助记符:jnz d
编码:0010 1110
操作:参见下列描述
影响标志位:JF=1
描述:该指令跳转范围是向前127字节或退回128字节。如标志ZF为0,则程序跳转到当前指令首地址的d+2偏移量处,即程序计数器PC增加d;否则程序无跳转。标志JF置1。
30、指令jc
(1)助记符:jc d
编码:0010 1101
操作:参见下列描述
影响标志位:JF=1
描述:该指令跳转范围是向前127字节或退回128字节。如标志CF为1,则程序跳转到当前指令首地址的d+2偏移量处,即程序计数器PC增加d;否则程序无跳转。标志JF置1。
31、指令jnc
(1)助记符:jnc d
编码:0010 1100
操作:参见下列描述
影响标志位:JF=1
描述:该指令跳转范围是向前127字节或退回128字节。如标志CF为0,则程序跳转到当前指令首地址的d+2偏移量处,即程序计数器PC增加d;否则程序无跳转。标志JF置1。
32、指令jmp
(1)助记符:jmp xy
编码:0000 0001
操作:xy->PC
影响标志位:JF=1
描述:程序跳转到地址为16位立即数xy的指令存贮单元。即将立即数xy赋值给程序计数器PC。标志JF置1。
(2)助记符:jmp(x)
编码:0001 1111 0000 0001
操作:(x+1,x)->PC
影响标志位:JF=1
描述:程序跳转到地址为内存单元(x+1,x)内容的指令存贮单元。即将内存单元(x+1,x)中的数据赋值给程序计数器PC。标志JF置1。
(3)助记符:jmp (hl+d)
编码:0001 1011 0000 0001
操作:(hl+d+1,hl+d)->PC
影响标志位:JF=1
描述:程序跳转到地址为存贮单元(hl+d+1,hl+d)内容的指令存贮单元。即将存贮单元(hl+d+1,hl+d)中的数据赋值给程序计数器PC。标志JF置1。
33、指令calv
(1)助记符:calv d
编码:0011 ****
操作:PC-1->(SP,SP-1),SP-2->SP,
(FFC1+d*2,FFC0+d*2)->PC
影响标志位:无描述:该指令为矢量调用指令,可访问16个不同的子程序。首先将程序计数器PC的当前值减1后压栈,同时把栈顶指针减2,然后将矢量表单元对(d*2+FFC1,d*2+FFC0)中的16位数据赋给PC,程序跳转到此时PC指向的地址,即所调用子程序的首地址。
34、指令calp
(1)助记符:calp d
编码:0000 0010
操作:PC->(SP,SP-1),SP-2->SP,FF00+d->PC
影响标志位:无
描述:该指令为页面调用指令。首先将程序计数器PC的当前值压栈,同时栈顶指针减2,然后将页面首地址FF00加上偏移量d赋给PC,程序跳转到此时PC指向的地址,即所调用子程序的首地址。
35、指令cal
(1)助记符:cal xy
编码:0000 0011
操作:PC+1->(SP,SP-1),SP-2->SP,xy->PC
影响标志位:无
描述:首先将程序计数器PC的当前值加1后压栈,同时栈顶指针减2,然后将16位数据xy赋给PC,程序跳转到此时PC指向的地址,即所调用子程序的首地址。
(2)助记符:cal (x)
编码:0001 1111 0000 0011
操作:PC+1->(SP,SP-1),SP-2->SP,(x+1,x)->PC
影响标志位:无
描述:首先将程序计数器PC的当前值加1后压栈,同时栈顶指针减2,然后将内存单元(x+1,x)中的16位数据赋给PC,程序跳转到此时PC指向的地址,即所调用子程序的首地址。
(3)助记符:cal (hl+d)
编码:0001 1011 0000 0011
操作:PC+1->(SP,SP-1),SP-2->SP,(hl+d+1,hl+d)->PC
影响标志位:无
描述:首先将程序计数器PC的当前值加1后压栈,同时栈顶指针减2,然后将存贮单元(hl+d+1,hl+d)中的16位数据赋给PC,程序跳转到此时PC指向的地址,即所调用子程序的首地址。
36、指令ret
(1)助记符:ret
编码:1111 1010
操作:SP+2->SP,(SP,SP-1)->PC
影响标志位:无
描述:该指令为子程序调用返回指令。首先将栈顶指针加2,然后将堆栈单元(SP,SP-1)中的数据赋给PC,程序跳转到此时PC指向的地址,即执行调用子程序指令的下一条指令。
37、指令reti
(1)助记符:reti
编码:1111 1011
操作:SP+3->SP,(SP-1,SP-2)->PC,(SP)->PSW
影响标志位:参见下列描述
描述:该指令为可屏蔽中断服务程序返回指令。首先将栈顶指针加3,然后将堆栈单元(SP-1,SP-2)中的数据赋给PC,同时将堆栈单元(SP)中的数据赋给程序状态字PSW,程序跳转到此时PC指向的地址,即执行中断发生时将要执行的下一条指令。此时各状态标志位(JF,ZF,CF,HF)恢复为中断服务程序执行前的数值。
38、指令retn
(1)助记符:retn
编码:0001 0111 1111 1011
操作:SP+3->SP,(SP-1,SP-2)->PC,(SP)->PSW
影响标志位:参见下列描述
描述:该指令为不可屏蔽中断服务程序返回指令。首先将栈顶指针加3,然后将堆栈单元(SP-1,SP-2)中的数据赋给PC,同时将堆栈单元(SP)中的数据赋给程序状态字PSW,程序跳转到此时PC指向的地址,即执行中断发生时将要执行的下一条指令。此时各状态标志位(JF,ZF,CF,HF)恢复为中断服务程序执行前的数值。
39、指令push
(1)助记符:push PSW
编码:1111 1000
操作:(PSW)->(SP),SP-1->SP
影响标志位:无
描述:将程序状态字PSW压栈,同时将栈顶指针减1。
(2)助记符:push pp
编码:0001 01** 1111 1000
操作:pp->(SP,SP-1),SP-2->SP
影响标志位:无
描述:将寄存器对pp中的数据压栈,同时将栈顶指针减2。
40、指令pop
(1)助记符:pop PSW
编码:1111 1001
操作:SP+1->SP,(SP)->PSW
影响标志位:参见下列描述
描述:将栈顶指针加1,然后将堆栈单元(SP)中的数据赋给程序状态字PSW。此时各状态标志位(JF,ZF,CF,HF)恢复为最近一条压栈指令执行前的数值。
(2)助记符:pop pp
编码:0001 01** 1111 1001
操作:SP+2->SP,(SP,SP-1)->pp
影响标志位:无
描述:将栈顶指针加2,然后将堆栈单元(SP,SP-1)中的数据赋给寄存器对pp。
41、指令swi
(1)助记符:swi
编码:0000 0000
操作:PSW->(SP),PC-1->(SP-1,SP-2),SP-3->SP,
0->IEN,(FFFD,FFFC)->PC
影响标志位:无
描述:该指令为软件中断指令。先将程序状态字PSW压栈到堆栈单元(SP),再将程序计数器递减后压栈到堆栈单元(SP-1,SP-2),同时栈顶指针减3,并将中断使能总标志IEN清0。禁止对所有可屏蔽中断的响应。最后将中断入口地址存贮单元(FFFD,FFFC)中的数据赋给程序计数器PC,从而执行软件中断服务程序。
42、指令nop
(1)助记符:nop
编码:1111 1111
操作:无
影响标志位:无
描述:该指令为空操作指令。
Claims (19)
1.一种基于CISC结构的微控制器构架,该微控制器核包括程序存储器,数据随机存储器,特殊功能寄存器堆,数据总线和地址总线,流水线指令结构,数据缓冲区,通用算术逻辑单元,指令读取及译码器和***控制模块,其中,所述的数据总线分为各自分离的8位内部数据总线和8位程序数据总线,所述的***控制模块用于产生***时钟、***复位以及各种读写控制电路,所述的流水线指令结构为单级四段流水线指令结构,该单级四段流水线指令处理结构分为4个部分,首先是指令读取及译码电路,该指令读取及译码器通过上述8位程序数据总线从程序存储器读入指令,并对指令进行译码分解;然后通过控制电路根据译码结果读取寄存器或者存储器的内容;再通过算术逻辑单元进行运算;之后对运算的结果存入寄存器或者数据存储器单元;当执行调用、返回等指令时,会对程序指针进行压栈和出栈操作,当执行跳转等指令时,有指针偏移操作,同时在每读下一字节指令时,会对PC有加1的操作。
2.根据权利要求1所述的基于CISC结构的微控制器构架,其特征在于所述的数据存储器(RAM)、程序存储器(ROM)、特殊功能寄存器和数据缓冲区域是空间独立的,利用地址映射电路将它们的地址映射在连续的空间上,并可扩展。
3.一种基于CISC结构的微控制器的指令实现方式,其特征在于该微控制器的指令集共有151条基本指令,该微控制器支持各类常见的微处理器指令,包括数据传送交换、算术逻辑运算、比较、乘除法、移位循环、半字节操作、位操作、跳转、调用返回、进栈退栈、软中断以及空操作类指令,指令执行周期最短的1个工作周期,最长的10个工作周期,指令可以进行相应的扩展。
4.如权利要求3所述的微控制器的指令实现方式,其特征在于所述的指令集包括25条数据传送指令,每条指令有其唯一的操作码识别,指令实现将源地址的数据传送到目的地址中,由于源地址和目的地址可以是多种寻址方式,使得每条指令包含1-4个字节不等的指令编码,产生一类控制信号控制完成:1)控制有关寄存器将数据传送至通用算术逻辑单元(2)控制通用算术逻辑单元完成地址的计算(3)控制从源地址提取数据(4)控制数据写入目的地址。
5.如权利要求3所述的微控制器的指令实现方式,其特征在于所述的指令集还包括10条比较指令,每条指令有其唯一的操作码识别,指令实现将源地址的数据与目的地址的数据进行比较,每条指令包含1-4个字节不等的指令编码,产生一类控制信号控制完成:(1)控制有关寄存器将地址数据传送至通用算术逻辑单元(2)控制通用算术逻辑单元完成地址的计算(3)控制从源地址和目的地址提取数据传送至通用算术逻辑单元(4)控制通用算术逻辑单元执行减法操作(5)控制将减法的结果设置标志寄存器。
6.如权利要求3所述的微控制器的指令实现方式,其特征在于所述的指令集还包括50条算术逻辑运算指令,每条指令有其唯一的操作码识别,指令实现将源地址的数据与目的地址的数据进行算术或逻辑运算,每条指令包含1-4个字节不等的指令编码,产生一类控制信号控制完成:(1)控制有关寄存器将地址数据传送至通用算术逻辑单元(2)控制通用算术逻辑单元完成地址的计算(3)控制从源地址和目的地址提取数据传送至通用算术逻辑单元(4)控制通用算术逻辑单元执行指令要求的算术逻辑操作(5)控制将运算的结果写入目的寄存器。
7.如权利要求3所述的微控制器的指令实现方式,其特征在于所述的指令集还包括2条十进制调整指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现将寄存器中的16进制结果进行十进制调整,产生BCD码,调整后的结果仍回写到寄存器p。
8.如权利要求3所述的微控制器的指令实现方式,其特征在于所述的指令集还包括2条乘除法指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现寄存器w与累加器a中的无符号数相乘并回写结果,指令实现寄存器对wa与寄存器c中的无符号数相除并回写。
9.如权利要求3所述的微控制器的指令实现方式,其特征在于所述的指令集还包括13条循环移位和半字节操作指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现寄存器或者寄存器与内存的数据的移位或者半字节移位。
10.如权利要求3所述的微控制器的指令实现方式,其特征在于所述的指令集还包括24条位操作指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,指令实现对寄存器或者内存单元数据的位进行设置和运算。
11.如权利要求3所述的微控制器的指令实现方式,其特征在于所述的指令集还包括11条跳转指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,根据偏移量指令实现程序的跳转。
12.如权利要求3所述的微控制器的指令实现方式,其特征在于所述的指令集还包括8条调用、返回指令,每条指令有其唯一的操作码识别,根据不同的寻址方式,产生控制信号,根据不同的寻址方式,指令实现子程序的调用和返回。
13.如权利要求3所述的微控制器的指令实现方式,其特征在于所述的指令集还包括4条进栈退栈指令,产生控制信号,指令实现对程序状态字和寄存器内容的压栈和出栈。
14.如权利要求3所述的微控制器,其特征在于所述的指令集还包括1条软中断指令,产生控制信号,指令实现软件中断。
15.如权利要求3所述的微控制器的指令实现方式,其特征在于所述的指令集还包括1条空操作指令,产生控制信号,指令实现空操作。
16.如权利要求3至15任一项所述的微控制器的指令实现方式,其特征在于读入的指令通过所述的指令读取及译码器分解,按分解后的微指令码进行译码,并执行相应的操作,根据寻址方式不同,译码后将操作数或者操作码分别存储于不同的操作数寄存器、微指令码寄存器、内存或者特殊的寄存器。
17.如权利要求16所述的微控制器的指令实现方式,其特征在于所述不同的寻址方式按寻址类型分别为立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、隐含寻址、相对寻址、变址寻址、绝对寻址、向量寻址、页寻址和存储器位寻址共11种类型。
18.如权利要求3至15任一项所述的微控制器的指令实现方式,其特征在于指令执行的顺序是在时钟的第一相读入指令码并译码,同时处理中断等,第二相读内存单元或者寄存器的数据并存储,第三相执行通用算术逻辑单元操作,完成指令要求的各种运算或者偏移量的计算,第四相将指令运算得的结果写入内存及相关寄存器,同时在每一相进行相关标志位的设置和指令周期存储计算的操作。
19.如权利要求3所述的微控制器的指令实现方式,其特征在于中断处理的方式为当中断请求发生时,置位中断锁存器,在指令执行的第一相时钟时检测中断锁存器,响应中断,并清中断使能标志和中断锁存器,PC在中断程序执行前后自动压栈和出栈;所述的中断的种类包括软件中断、外部中断、定时器中断、WDT中断、串行接口中断,中断可嵌套,除软件中断和WDT中断外可控制中断源屏蔽。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031504027A CN100545804C (zh) | 2003-08-18 | 2003-08-18 | 一种基于cisc结构的微控制器及其指令集的实现方法 |
CN2007101872125A CN101299185B (zh) | 2003-08-18 | 2003-08-18 | 一种基于cisc结构的微处理器结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031504027A CN100545804C (zh) | 2003-08-18 | 2003-08-18 | 一种基于cisc结构的微控制器及其指令集的实现方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101872125A Division CN101299185B (zh) | 2003-08-18 | 2003-08-18 | 一种基于cisc结构的微处理器结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1584824A true CN1584824A (zh) | 2005-02-23 |
CN100545804C CN100545804C (zh) | 2009-09-30 |
Family
ID=34597504
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031504027A Expired - Fee Related CN100545804C (zh) | 2003-08-18 | 2003-08-18 | 一种基于cisc结构的微控制器及其指令集的实现方法 |
CN2007101872125A Expired - Fee Related CN101299185B (zh) | 2003-08-18 | 2003-08-18 | 一种基于cisc结构的微处理器结构 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101872125A Expired - Fee Related CN101299185B (zh) | 2003-08-18 | 2003-08-18 | 一种基于cisc结构的微处理器结构 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN100545804C (zh) |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101344875B (zh) * | 2008-08-15 | 2011-11-23 | 无锡中星微电子有限公司 | 一种片上集成***SoC的APB总线桥 |
CN102270111A (zh) * | 2011-08-11 | 2011-12-07 | 中国科学院声学研究所 | 一种指令译码方法和指令集模拟装置 |
CN101625643B (zh) * | 2009-05-08 | 2012-01-04 | 四川和芯微电子股份有限公司 | 一种8051单片机地址映射方法 |
CN101178644B (zh) * | 2006-11-10 | 2012-01-25 | 上海海尔集成电路有限公司 | 一种基于复杂指令集计算机结构的微处理器架构 |
CN101495960B (zh) * | 2006-07-25 | 2012-08-29 | 高通股份有限公司 | 有效的中断返回地址保存机制 |
CN102779023A (zh) * | 2011-05-12 | 2012-11-14 | 中兴通讯股份有限公司 | 一种处理器的环回结构及数据环回处理方法 |
CN103150146A (zh) * | 2013-01-31 | 2013-06-12 | 西安电子科技大学 | 基于可扩展处理器架构的专用指令集处理器及其实现方法 |
CN103186977A (zh) * | 2011-12-30 | 2013-07-03 | 无锡华润矽科微电子有限公司 | 微处理器中实现遥控信号发射指令控制的电路结构 |
WO2015024482A1 (zh) * | 2013-08-19 | 2015-02-26 | 上海芯豪微电子有限公司 | 变长指令字处理器***和方法 |
CN104484157A (zh) * | 2006-09-22 | 2015-04-01 | 英特尔公司 | 用于处理文本串的指令和逻辑 |
CN105094749A (zh) * | 2009-12-22 | 2015-11-25 | 英特尔公司 | Simd向量的同步化 |
CN105824603A (zh) * | 2016-03-14 | 2016-08-03 | 西南交通大学 | 一种基于cisc指令集的流水线取指和译码方法 |
CN106020017A (zh) * | 2016-05-16 | 2016-10-12 | 深圳清华大学研究院 | 微控制器及其控制方法 |
CN107305538A (zh) * | 2016-04-22 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种子矩阵运算装置及方法 |
CN107315571A (zh) * | 2016-04-27 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行全连接层神经网络正向运算的装置和方法 |
CN107315715A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行矩阵加/减运算的装置和方法 |
CN107315566A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行向量循环移位运算的装置和方法 |
CN107315565A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于生成服从一定分布的随机向量装置和方法 |
CN107315575A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行向量合并运算的装置和方法 |
CN107315563A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行向量比较运算的装置和方法 |
CN107315574A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行矩阵乘运算的装置和方法 |
CN107688466A (zh) * | 2016-08-05 | 2018-02-13 | 北京中科寒武纪科技有限公司 | 一种运算装置及其操作方法 |
CN107704267A (zh) * | 2016-04-29 | 2018-02-16 | 北京中科寒武纪科技有限公司 | 一种卷积神经网络运算指令及其方法 |
CN109101272A (zh) * | 2018-02-05 | 2018-12-28 | 上海寒武纪信息科技有限公司 | 神经网络处理装置及其执行矩阵相乘指令的方法 |
CN109324984A (zh) * | 2018-09-14 | 2019-02-12 | 北京地平线机器人技术研发有限公司 | 在卷积运算中使用循环寻址的方法和装置 |
CN109460254A (zh) * | 2018-09-25 | 2019-03-12 | 杭州旗捷科技有限公司 | 一种指令处理方法、cpu交互***及采用该***的耗材芯片 |
CN109739557A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 零开销循环装置及实现方法、***、设备、计算机介质 |
US10534841B2 (en) | 2016-04-22 | 2020-01-14 | Cambricon Technologies Corporation Limited | Appartus and methods for submatrix operations |
CN111258651A (zh) * | 2020-01-16 | 2020-06-09 | 合肥磐芯电子有限公司 | 一种8位risc-cpu*** |
CN111831331A (zh) * | 2020-07-16 | 2020-10-27 | 中国科学院计算技术研究所 | 用于分形智能处理器的分形可重配指令集 |
CN111857824A (zh) * | 2020-07-16 | 2020-10-30 | 中国科学院计算技术研究所 | 用于分形智能处理器的控制***、方法及电子设备 |
CN112631657A (zh) * | 2019-09-24 | 2021-04-09 | 阿里巴巴集团控股有限公司 | 用于字符串处理的字节比较方法以及指令处理装置 |
CN113779755A (zh) * | 2021-08-05 | 2021-12-10 | 中科联芯(广州)科技有限公司 | 一种硅基多光谱集成电路芯片的设计方法和集成电路芯片 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8356145B2 (en) * | 2010-01-15 | 2013-01-15 | Qualcomm Incorporated | Multi-stage multiplexing operation including combined selection and data alignment or data replication |
CN103488462B (zh) * | 2013-09-06 | 2016-04-13 | 暨南大学 | 一种改进型8051ip核 |
CN114661355B (zh) * | 2022-05-24 | 2022-12-02 | 深圳市智想科技有限公司 | Risc架构处理器的寄存器架构、寄存器组及risc架构处理器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0338725A (ja) * | 1989-07-05 | 1991-02-19 | Mitsubishi Electric Corp | データ処理装置及びマイクロプロセッサ |
JP2581018B2 (ja) * | 1994-09-12 | 1997-02-12 | 日本電気株式会社 | データ処理装置 |
US5600674A (en) * | 1995-03-02 | 1997-02-04 | Motorola Inc. | Method and apparatus of an enhanced digital signal processor |
FR2770660B1 (fr) * | 1997-11-03 | 2000-08-25 | Inside Technologies | Microprocesseur, notamment pour carte a puce |
-
2003
- 2003-08-18 CN CNB031504027A patent/CN100545804C/zh not_active Expired - Fee Related
- 2003-08-18 CN CN2007101872125A patent/CN101299185B/zh not_active Expired - Fee Related
Cited By (85)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101495960B (zh) * | 2006-07-25 | 2012-08-29 | 高通股份有限公司 | 有效的中断返回地址保存机制 |
US9632784B2 (en) | 2006-09-22 | 2017-04-25 | Intel Corporation | Instruction and logic for processing text strings |
US9740490B2 (en) | 2006-09-22 | 2017-08-22 | Intel Corporation | Instruction and logic for processing text strings |
CN104484157A (zh) * | 2006-09-22 | 2015-04-01 | 英特尔公司 | 用于处理文本串的指令和逻辑 |
US9804848B2 (en) | 2006-09-22 | 2017-10-31 | Intel Corporation | Instruction and logic for processing text strings |
US9740489B2 (en) | 2006-09-22 | 2017-08-22 | Intel Corporation | Instruction and logic for processing text strings |
US9720692B2 (en) | 2006-09-22 | 2017-08-01 | Intel Corporation | Instruction and logic for processing text strings |
US10261795B2 (en) | 2006-09-22 | 2019-04-16 | Intel Corporation | Instruction and logic for processing text strings |
US10929131B2 (en) | 2006-09-22 | 2021-02-23 | Intel Corporation | Instruction and logic for processing text strings |
US11023236B2 (en) | 2006-09-22 | 2021-06-01 | Intel Corporation | Instruction and logic for processing text strings |
US9703564B2 (en) | 2006-09-22 | 2017-07-11 | Intel Corporation | Instruction and logic for processing text strings |
US9645821B2 (en) | 2006-09-22 | 2017-05-09 | Intel Corporation | Instruction and logic for processing text strings |
US9772847B2 (en) | 2006-09-22 | 2017-09-26 | Intel Corporation | Instruction and logic for processing text strings |
US11029955B2 (en) | 2006-09-22 | 2021-06-08 | Intel Corporation | Instruction and logic for processing text strings |
CN104484157B (zh) * | 2006-09-22 | 2017-10-24 | 英特尔公司 | 用于处理文本串的指令和逻辑 |
US9772846B2 (en) | 2006-09-22 | 2017-09-26 | Intel Corporation | Instruction and logic for processing text strings |
US11537398B2 (en) | 2006-09-22 | 2022-12-27 | Intel Corporation | Instruction and logic for processing text strings |
US9495160B2 (en) | 2006-09-22 | 2016-11-15 | Intel Corporation | Instruction and logic for processing text strings |
CN101178644B (zh) * | 2006-11-10 | 2012-01-25 | 上海海尔集成电路有限公司 | 一种基于复杂指令集计算机结构的微处理器架构 |
CN101344875B (zh) * | 2008-08-15 | 2011-11-23 | 无锡中星微电子有限公司 | 一种片上集成***SoC的APB总线桥 |
CN101625643B (zh) * | 2009-05-08 | 2012-01-04 | 四川和芯微电子股份有限公司 | 一种8051单片机地址映射方法 |
CN105094749A (zh) * | 2009-12-22 | 2015-11-25 | 英特尔公司 | Simd向量的同步化 |
WO2012151822A1 (zh) * | 2011-05-12 | 2012-11-15 | 中兴通讯股份有限公司 | 一种处理器的环回结构及数据环回处理方法 |
CN102779023A (zh) * | 2011-05-12 | 2012-11-14 | 中兴通讯股份有限公司 | 一种处理器的环回结构及数据环回处理方法 |
CN102270111B (zh) * | 2011-08-11 | 2014-01-01 | 中国科学院声学研究所 | 一种指令译码方法和指令译码装置 |
CN102270111A (zh) * | 2011-08-11 | 2011-12-07 | 中国科学院声学研究所 | 一种指令译码方法和指令集模拟装置 |
CN103186977A (zh) * | 2011-12-30 | 2013-07-03 | 无锡华润矽科微电子有限公司 | 微处理器中实现遥控信号发射指令控制的电路结构 |
CN103186977B (zh) * | 2011-12-30 | 2016-02-03 | 无锡华润矽科微电子有限公司 | 微处理器中实现遥控信号发射指令控制的电路结构 |
CN103150146B (zh) * | 2013-01-31 | 2015-11-25 | 西安电子科技大学 | 基于可扩展处理器架构的专用指令集处理器及其实现方法 |
CN103150146A (zh) * | 2013-01-31 | 2013-06-12 | 西安电子科技大学 | 基于可扩展处理器架构的专用指令集处理器及其实现方法 |
WO2015024482A1 (zh) * | 2013-08-19 | 2015-02-26 | 上海芯豪微电子有限公司 | 变长指令字处理器***和方法 |
US10140126B2 (en) | 2013-08-19 | 2018-11-27 | Shanghai Xinhao Microelectronics Co. Ltd. | Variable length instruction processor system and method |
CN105824603B (zh) * | 2016-03-14 | 2018-07-31 | 西南交通大学 | 一种基于cisc指令集的流水线取指和译码方法 |
CN105824603A (zh) * | 2016-03-14 | 2016-08-03 | 西南交通大学 | 一种基于cisc指令集的流水线取指和译码方法 |
CN107305538A (zh) * | 2016-04-22 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种子矩阵运算装置及方法 |
US10534841B2 (en) | 2016-04-22 | 2020-01-14 | Cambricon Technologies Corporation Limited | Appartus and methods for submatrix operations |
CN108491359A (zh) * | 2016-04-22 | 2018-09-04 | 北京中科寒武纪科技有限公司 | 子矩阵运算装置及方法 |
CN108388541A (zh) * | 2016-04-22 | 2018-08-10 | 北京中科寒武纪科技有限公司 | 卷积运算装置及方法 |
CN109240746A (zh) * | 2016-04-26 | 2019-01-18 | 北京中科寒武纪科技有限公司 | 一种用于执行矩阵乘运算的装置和方法 |
CN111857819A (zh) * | 2016-04-26 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种用于执行矩阵加/减运算的装置和方法 |
CN111857819B (zh) * | 2016-04-26 | 2024-05-03 | 中科寒武纪科技股份有限公司 | 一种用于执行矩阵加/减运算的装置和方法 |
CN107315574A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行矩阵乘运算的装置和方法 |
CN111651199B (zh) * | 2016-04-26 | 2023-11-17 | 中科寒武纪科技股份有限公司 | 一种用于执行向量循环移位运算的装置和方法 |
CN107315563A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行向量比较运算的装置和方法 |
US11080049B2 (en) | 2016-04-26 | 2021-08-03 | Cambricon Technologies Corporation Limited | Apparatus and methods for matrix multiplication |
CN107315715A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行矩阵加/减运算的装置和方法 |
CN107315566A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行向量循环移位运算的装置和方法 |
CN107315575A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行向量合并运算的装置和方法 |
US10891353B2 (en) | 2016-04-26 | 2021-01-12 | Cambricon Technologies Corporation Limited | Apparatus and methods for matrix addition and subtraction |
CN107315565A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于生成服从一定分布的随机向量装置和方法 |
US10592241B2 (en) | 2016-04-26 | 2020-03-17 | Cambricon Technologies Corporation Limited | Apparatus and methods for matrix multiplication |
CN107315574B (zh) * | 2016-04-26 | 2021-01-01 | 安徽寒武纪信息科技有限公司 | 一种用于执行矩阵乘运算的装置和方法 |
CN109240746B (zh) * | 2016-04-26 | 2020-12-18 | 安徽寒武纪信息科技有限公司 | 一种用于执行矩阵乘运算的装置和方法 |
US10860681B2 (en) | 2016-04-26 | 2020-12-08 | Cambricon Technologies Corporation Limited | Apparatus and methods for matrix addition and subtraction |
US10853069B2 (en) | 2016-04-26 | 2020-12-01 | Cambricon Technologies Corporation Limited | Apparatus and methods for comparing vectors |
CN107315565B (zh) * | 2016-04-26 | 2020-08-07 | 中科寒武纪科技股份有限公司 | 一种用于生成服从一定分布的随机向量装置和方法 |
CN107315563B (zh) * | 2016-04-26 | 2020-08-07 | 中科寒武纪科技股份有限公司 | 一种用于执行向量比较运算的装置和方法 |
US10761991B2 (en) | 2016-04-26 | 2020-09-01 | Cambricon Technologies Corporation Limited | Apparatus and methods for circular shift operations |
CN111651199A (zh) * | 2016-04-26 | 2020-09-11 | 中科寒武纪科技股份有限公司 | 一种用于执行向量循环移位运算的装置和方法 |
CN107315715B (zh) * | 2016-04-26 | 2020-11-03 | 中科寒武纪科技股份有限公司 | 一种用于执行矩阵加/减运算的装置和方法 |
CN107315566B (zh) * | 2016-04-26 | 2020-11-03 | 中科寒武纪科技股份有限公司 | 一种用于执行向量循环移位运算的装置和方法 |
CN107315571A (zh) * | 2016-04-27 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行全连接层神经网络正向运算的装置和方法 |
CN107704267B (zh) * | 2016-04-29 | 2020-05-08 | 中科寒武纪科技股份有限公司 | 一种卷积神经网络运算指令及其方法 |
CN107704267A (zh) * | 2016-04-29 | 2018-02-16 | 北京中科寒武纪科技有限公司 | 一种卷积神经网络运算指令及其方法 |
US10592801B2 (en) | 2016-04-29 | 2020-03-17 | Cambricon Technologies Corporation Limited | Apparatus and methods for forward propagation in convolutional neural networks |
CN106020017A (zh) * | 2016-05-16 | 2016-10-12 | 深圳清华大学研究院 | 微控制器及其控制方法 |
CN106020017B (zh) * | 2016-05-16 | 2019-02-01 | 深圳清华大学研究院 | 微控制器及其控制方法 |
CN107688466B (zh) * | 2016-08-05 | 2020-11-03 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
CN107688466A (zh) * | 2016-08-05 | 2018-02-13 | 北京中科寒武纪科技有限公司 | 一种运算装置及其操作方法 |
US11836497B2 (en) | 2018-02-05 | 2023-12-05 | Shanghai Cambricon Information Technology Co., Ltd | Operation module and method thereof |
CN109101272A (zh) * | 2018-02-05 | 2018-12-28 | 上海寒武纪信息科技有限公司 | 神经网络处理装置及其执行矩阵相乘指令的方法 |
CN109324984B (zh) * | 2018-09-14 | 2020-06-26 | 北京地平线机器人技术研发有限公司 | 在卷积运算中使用循环寻址的方法和装置 |
CN109324984A (zh) * | 2018-09-14 | 2019-02-12 | 北京地平线机器人技术研发有限公司 | 在卷积运算中使用循环寻址的方法和装置 |
CN109460254A (zh) * | 2018-09-25 | 2019-03-12 | 杭州旗捷科技有限公司 | 一种指令处理方法、cpu交互***及采用该***的耗材芯片 |
CN109739557B (zh) * | 2019-01-08 | 2022-02-18 | 郑州云海信息技术有限公司 | 零开销循环装置及实现方法、***、设备、计算机介质 |
CN109739557A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 零开销循环装置及实现方法、***、设备、计算机介质 |
CN112631657A (zh) * | 2019-09-24 | 2021-04-09 | 阿里巴巴集团控股有限公司 | 用于字符串处理的字节比较方法以及指令处理装置 |
CN112631657B (zh) * | 2019-09-24 | 2024-06-11 | 阿里巴巴集团控股有限公司 | 用于字符串处理的字节比较方法以及指令处理装置 |
CN111258651B (zh) * | 2020-01-16 | 2022-05-17 | 合肥磐芯电子有限公司 | 一种8位risc-cpu*** |
CN111258651A (zh) * | 2020-01-16 | 2020-06-09 | 合肥磐芯电子有限公司 | 一种8位risc-cpu*** |
CN111831331A (zh) * | 2020-07-16 | 2020-10-27 | 中国科学院计算技术研究所 | 用于分形智能处理器的分形可重配指令集 |
CN111831331B (zh) * | 2020-07-16 | 2024-04-05 | 中国科学院计算技术研究所 | 用于分形智能处理器的分形可重配指令集 |
CN111857824A (zh) * | 2020-07-16 | 2020-10-30 | 中国科学院计算技术研究所 | 用于分形智能处理器的控制***、方法及电子设备 |
CN113779755A (zh) * | 2021-08-05 | 2021-12-10 | 中科联芯(广州)科技有限公司 | 一种硅基多光谱集成电路芯片的设计方法和集成电路芯片 |
CN113779755B (zh) * | 2021-08-05 | 2023-11-17 | 中科联芯(广州)科技有限公司 | 一种硅基多光谱集成电路芯片的设计方法和集成电路芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN101299185B (zh) | 2010-10-06 |
CN101299185A (zh) | 2008-11-05 |
CN100545804C (zh) | 2009-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1584824A (zh) | 一种基于cisc结构的微处理器构架及指令实现方式 | |
CN1246772C (zh) | 处理器 | |
CN1186718C (zh) | 微控制器指令集 | |
CN1135468C (zh) | 对存储设备中信号数据字执行数字信号处理的方法和装置 | |
CN1244051C (zh) | 对于处理数据的装置和方法 | |
CN1117316C (zh) | 采用多个向量寄存器组的单指令多数据处理方法及其装置 | |
CN1112635C (zh) | 多媒体信号处理器中的单指令多数据处理方法及其装置 | |
CN1103961C (zh) | 协处理器的数据访问控制装置和方法 | |
CN1472646A (zh) | 适应性强具备最佳化功能的编译装置 | |
CN1625731A (zh) | 具有多种长度指令集体系结构的可配置数据处理器 | |
CN1875345A (zh) | 在编译过程中表示和检查程序组件的一致性的可扩展类型*** | |
CN1605058A (zh) | 关于嵌入式字段可编程门阵列核心的接口结构 | |
CN1427335A (zh) | 电路组控制*** | |
CN1484787A (zh) | 处理器流水线中的硬件指令翻译 | |
CN1226323A (zh) | 数据处理装置寄存器 | |
CN1469241A (zh) | 处理器、程序变换装置和变换方法以及计算机程序 | |
CN1993709A (zh) | 信号处理设备 | |
CN101040306A (zh) | 伪随机数生成装置 | |
CN1269052C (zh) | 支持缩小代码长度的常量还原型处理器 | |
CN1155884C (zh) | 通过大范围的同值关系的解析来消除传输命令的优化装置 | |
CN1516001A (zh) | 一种新型risc流水线微控制器构架及其操作方法 | |
CN1993673A (zh) | 数据处理装置、数据处理程序及记录了数据处理程序的记录介质 | |
CN1152300C (zh) | 多媒体信号处理器中的单指令多数据处理方法及其装置 | |
CN1788254A (zh) | 关于Lyee指向软件的静态分析方法 | |
CN1104679C (zh) | 数据处理装置和数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090930 Termination date: 20160818 |
|
CF01 | Termination of patent right due to non-payment of annual fee |