您好,欢迎访问三七文档
深圳博巨兴有限公司1EM78指令系统目录EM78指令系统..................................................................................................................................11.程序基本格式.....................................................................................................................22.EM78指令概述..................................................................................................................33.EM78指令寻址方式..........................................................................................................43.1.立即数寻址.........................................................................................................43.2.直接寻址.............................................................................................................43.3.间接寻址.............................................................................................................43.4.位寻址.................................................................................................................54.EM78基本指令说明..........................................................................................................55.EM78扩展指令说明........................................................................................................186.指令速查表...............................................................................................................21深圳博巨兴有限公司2EM78指令系统1.1.1.1.程序基本格式程序基本格式程序基本格式程序基本格式;******************************************;;项目名称:BJX_XXXX某某项目名V1;设计者:XX;完成日期:XXXX年X月XX日;芯片型号:EMC78Pxxx;振荡类型:RC/CRYSTAL振荡;频率:100kHz;WDT:开/关;中断类型:定时器/计数器(TCC)使用;******************************************;;========EM78常量定义======================;User_Idequ@0x88;;========EM78专用寄存器地址定义============;includeem78pxxx.h;专用寄存器头文件见头文件包includeexpand_instruction.h;========EM78一般寄存器定义================;Event_Counterequ0x10;========EM78一般控制位定义================;System_Statusequ0x20;系统状态标置Halfequ0;半秒标志;===========================================;org0;上电复位程序入口jmpSystem_Initialize;===========================================;org8;中断服务程序入口jmpTcc_Interrupt_Serve;===========================================;org30;系统初始化System_Initialize:;{;…深圳博巨兴有限公司3;};===========================================;Main:;主程序开始;{nopwdtc;===================================;TableEvent_Counter;执行事件处理jmpScan_Key;0;…jmp…;x;===================================;clrEvent_Counter;x-0;…jmpMain;;};===========================================;;中断程序开始Tcc_Interrupt_Serve:Save_Environment_Mac;…Restore_Environment_Mac;===========================================;;子程序开始;---------------------------------;程序名:Scan_Key;功能:按键扫描;输入变量:;输出变量:Key_Flag;----------------------------------Scan_Key:;…ret;-----------------------------------;-----子程序Scan_Key结束-----;-----------------------------------2.2.2.2.EM78EM78EM78EM78指令概述指令概述指令概述指令概述EM78系列单片机共有的47条(EM78P447和451、458有48条)指令,其寬度为13位。每一个指令码可分割成两部份,第一部分为标示指令功能的运算码(OPCODE),第二部份則指出运算時所需之參数,亦即运算码(OPERAND)。而指令的类型大致可分为下列四种:深圳博巨兴有限公司4(1)控制型指令(controloperation):如INT...等等。(2)面向寄存器(字节操作)型指令(registeroriented):如...等等。(3)位操作型指令(bitoriented):如BC,JBS...等等。(4)常数型指令(constantoperation):如MOVA,@0x55;move0x55toAXOR@0xFF;XorAwith0xFF一般而言,EM78系列八位微控制器除了對PC(ProgramCounter)做“写”的指令如(MOVPC,A),需二个指令周期外,其他的指令只需一个指令周期,。3.3.3.3.EM78EM78EM78EM78指令寻址方式指令寻址方式指令寻址方式指令寻址方式关于对寄存器的存取,必須要先说明寄存器的位址,说明暫存的位址的方式称做寻址方式,EM78的寻址方式有两种,一种为直接寻址,一种为間接寻址。3.1.立即数寻址这种方式就是操作数为立即数,可直接从指令中获取。例:MOVA,@0x16;将常数0x16送给寄存器A3.2.直接寻址若是使用者要存取寄存器的内容,可以在运算码上直接描述。�例:將寄存器0X20的内容,COPY到寄存器0X21中。MOVA,0X20MOV0X21,A3.3.间接寻址这种寻址方式是通过寄存器R4来实现的,R4的bit0-5是用来选择寄存器(地址:00-06,0F-3F)若是使用者所需要存取的寄存器,有位址相邻的特性,使用間接寻址是很方便的。����例:写一个程序,將寄存器0X200X200X200X20~~~~0X3F0X3F0X3F0X3F的值都填0000。MOVA,@0X20MOV0X04,AAGAIN:CLR0MOVA,Reg_B;moveReg_BtoAADDReg_B,A;addReg_BwithA,and;saveinReg_B;設定A=0X20。;設定間接寻址寄存器(0X04);的內含值為0X20;清除0X04所指的寄存器。;递增間接寻址寄存器(0X04);設定A=0X04寄存器的值。;比較間接寻址的位址是否;以到0X3F。若是則結束。;否則在继续。深圳博巨兴有限公司5INC0X04MOVA,0X04XORA,0X3FJBS0X03,2JMPAGAINEND:3.4.位寻址这种位寻址是对寄存器中的任一位(bit)进行操作。例:BS0x12,2;将寄存器0x12的第2位置为“1”。4.4.4.4.EM78EM78EM78EM78基本指令说明基本指令说明基本指令说明基本指令说明1.1.1.1.ADDADDADDADD加加加加2.2.2.2.ANDANDANDAND与与与与语法ADDA,R编码0001110rrrrrr操作A+R→A对标志位影响D,C,DC说明无举例实现A=R11+R12:MOVA,0X11ADDA,0X12语法ADDR,A编码0001111rrrrrr操作A+R→R对标志位影响Z,C,DC说明无举例实现R10=R11+R12:MOVA,0X11MOV0X10,AMOVA,0X12ADD0X10,A语法ADDA,K编码11111kkkkkkkk操作A+K→A对标志位影响Z,C,DC说明无举例实现A=0X01+0X01:MOVA,@0X01ADDA,@0X01语法ANDA,R编码0001010rrrrrr操作A&R→A深圳博巨兴有限公司63.3.3.3.BCBCBCBC位清位清位清位清00004.4.4.4.BSBSBSBS位置位置位置位置11115.5.5.5.CALLCALLCALLCALL子程序调用子程序调用子程序调用子程序调用对标志位影响Z说明无举例P6口和R10寄存器相与,结果输出至P6口:MOVA,0X6;P6口输入ANDA,0X10;相与MOV0X6,A;P6口输出语法ANDR,A编码0001011rrrrrr操作A&R→R对标志位影响Z说明无举例实现R10=R11&R12:MOVA,0X11MOV0X10,AMOVA,0X12AND0X10,A语法ANDA,K编码11010kkkkkkkk操作A&K→A对标志位影响Z说明无举例无语法BCR,b编码0100bbbrrrrrr操作0→R(b)对标志位影响无说明R寄存器第b位清0举例MOVA,@0X0FMOV0X10,A;R10=00001111BC0X10,3;R10=00000111语法BSR,b编码0101bbbrrrrrr操作1→R(b)对标志位影响无说明R寄存器第b位置1举例置C标志为1:BS0X3,0语法CALLK编码100kkkkkkkkkk操作PC+1→[栈顶],K→PC(9::0),R3(7::5)→PC(12::10)对标志位影响无深圳博巨兴有限公司76.6.6.6.CLRACLRACLRACLRA清累加器清累加器清累加器清累加器AAAA7.7.7.7.CLRCLRCLRCLR清寄存器清寄存器清寄存器清寄存器8.8.8.8.COMACOMACOMACOMARRRR寄存器取补,存
本文标题:EM78指令系统
链接地址:https://www.777doc.com/doc-4049827 .html