发明名称 一种16位微处理器指令集
摘要 本发明涉及一种16位微处理器指令集,采用RISC体系结构,每条指令均为单字长、单周期。包括数据传送、数学逻辑运算、转移控制、立即数操作及处理器控制5类共37条指令,构成了完整的RISC处理器的指令集。该16位微处理器指令集的编码将固定长编码、哈夫曼编码和扩展编码三种编码方式相结合,将常用的指令用短码表示,将数据传送类、转移类指令、算术逻辑类类型,用四位基本码编码,而指令的其余字段可用于操作数地址或扩展本类指令的所有指令。指令集规定16位微处理器所包含的128个寄存器,前16个寄存器为通用寄存器,可以作为算术逻辑运算的操作数,也可以作为地址寄存器或与存储器进行数据传送;其余的寄存器则只能与前16个通用寄存器进行数据传送。
申请公布号 CN1438574A 申请公布日期 2003.08.27
申请号 CN03114503.5 申请日期 2003.02.21
申请人 中国航天科技集团公司第九研究院七七一研究所 发明人 张伟功;于伦正;段青亚;刘曙蓉
分类号 G06F9/30;G06F9/315 主分类号 G06F9/30
代理机构 西安通大专利代理有限责任公司 代理人 李郑建
主权项 1.一种16位微处理器的指令集,其特征在于,该指令集采用RISC体系结构,每条指令均为单字长、单周期;系统包括数据传送、数学逻辑运算、转移控制、立即数操作及处理器控制等5类共37条指令,构成了一个完整的RISC处理器的指令集;该16位微处理器的指令格式及编码如下,其中:R: 七位二进制数表示的寄存器号Rb:四位二进制数表示的用作间接寻址的寄存器号Rd:四位二进制数表示的目的操作数寄存器号Rs:四位二进制数表示的一个源通用寄存器或专用寄存器 A、立即数装入指令①立即数→内部寄存器指令助记符:LDM Rd,#imm10指令格式: 01,Rd,#imm10功能:将10位的立即数送入内部寄存器;B、数据传送类指令①内部寄存器寄存器指令助记符:LD Rd,R及STRd,R指令格式: 00,Rd,00,D,R(D为1表示ST,为0表示LD)功能:LD将寄存器R的内容送到内部寄存器Rd; ST将内部寄存器Rd的内容送到寄存器R;②内部寄存器存储器指令助记符:LD Rd,@Rb及ST Rd,@Rb指令格式: 00,Rd,01,D,000,RbD为1表示ST,为0表示LD功能:LD将Rb所指的存储器的内容送往内部寄存器Rd; ST将内部寄存器Rd的内容送往Rb所指的存储器单元;③堆栈操作:包括压栈和出栈指令指令助记符:PUSH Rd及POP Rd指令格式:00,Rd,11,D,000,0001(D为1表示PUSH,为0表示POP)功能:PUSH将内部寄存器Rd的内容压入栈顶; POP将栈顶内容弹到内部寄存器Rd;C、算术逻辑运算类指令为了减少指令种类,将移位操作附加于算术逻辑运算之后;①加“1”指令指令助记符:INC Rs(,shiftcode)功能:指定寄存器Rs内容加1,按指定方式移位后送到该寄存器;②减“1”指令指令助记符:DEC Rs(,shiftcode)功能:指定寄存器Rs内容减1,按指定方式移位后送到该寄存器;③加法或带进位的加法指令助记符:ADD Rs(,shiffcode)功能:累加器ACC内容加指定寄存器Rs内容,按指定方式移位后送到累加器寄存器;指令助记符:ADDC Rs(,shiffcode)功能:累加器ACC内容加指定寄存器Rs内容再加进位后,再按指定方式移位后送到累加器ACC;④减法或带进位的减法指令助记符:SUB Rs(,shiffcode)功能:累加器ACC内容减指定寄存器Rs内容,按指定方式移位后送到累加器ACC;指令助记符:SUBC Rs(,shiftcode)功能:累加器ACC内容减指定寄存器Rs内容再减进位后,再按指定方式移位后送到累加器ACC;⑤逻辑与符:AND Rs(,shiftcode)功能:累加器ACC内容逻辑与指定寄存器Rs内容后,再按指定方式移位后送到累加器ACC;⑥逻辑或指令助记符:OR Rs(,shiftcode)功能:累加器ACC内容逻辑或指定寄存器Rs内容后,再按指定方式移位后送到累加器ACC;⑦逻辑异或指令助记符:XOR Rs(,shiftcode)功能:累加器ACC内容逻辑异或指定寄存器Rs内容后,再按指定方式移位后送到累加器ACC;⑧逻辑求反指令助记符:NOT Rs(,shiftcode)功能:将指定寄存器Rs内容各位取反后,再按指定方式移位后送到累加器寄存器。⑨移位指令助记符:SHT Rs(,shiftcode)功能:将指定寄存器Rs内容按指定方式移位;⑩字节交换指令助记符:SWAP Rs功能:将内部寄存器Rs的高低字节交换;算术逻辑运算指令格式:11,Rs,00,LAOP,ShiftMode格式说明:LAOP是四位二进制数表示的算术或逻辑运算类型代码:0000:INC 0010:DEC 1000:ADD 1001:ADDC1010:SUB 1011:SUBC 1101:AND 1110:OR1100:XOR 0110:NOT 0100:SHT或SWAPShiftMode占四位,规定了指令执行时的移位方式:0101:逻辑左移一位,低位补0,D15送BF0100:逻辑右移一位,高位补0,D0送BF0011:循环左移一位,不包括BF0010:循环右移一位,不包括BF0111:循环左移一位,包括BF,D15送BF0110:循环右移一位,包括BF,D0送BF1000:高低字节交换,不影响BF1111和其他:不进行移位D、转移类指令相对地址短转移、寄存器转移、直接地址长转移三种指令:①无条件转移指令助记符:JMP[S] #imm13指令格式:10,S, #imm13S:返回地址存储标识,为1保存返回地址,0不保存功能:程序转移到指定的存储器地址。该地址是指令中13位立即数操作数。②寄存器转移指令助记符:JMP[S] Rs指令格式:11,S000,10,0000,Rs(S同上)功能:程序转移到寄存器内容所指的存储器地址。③条件转移指令助记符:JZ #imm8 或 JZ 标号 (若ZF标志为真即‘1’转移)JNZ #imm8 或 JNZ 标号 (若ZF标志为假即‘0’转移)JC #imm8 或 JC 标号 (若CF标志为真即‘1’转移)JNC #imm8 或 JNC 标号 (若CF标志为假即‘0’转移)JB #imm8 或 JB 标号 (若BF标志为真即‘1’转移)JNB #imm8 或 JNB 标号 (若BF标志为假即‘0’转移)JO #imm8 或 JO 标号 (若OF标志为真即‘1’转移)JNO #imm8 或 JNO 标号 (若OF标志为假即‘0’转移)指令格式:11,S000,10,0000,Rs(S同上)功能:当测试条件成立时,程序转移到程序计数器加相对偏移量的存储器的地址;对零标志、进位标志、移出位标志、溢出标志进行测试;E、杂类①开/关中断指令指令助记符:SETI及CLRI 指令格式:11,0000,11,0000,000SS=1表示SETI开中断,为O表示CLRI关中断指令功能:SETI设置中断允许标志为允许;CLRI设置中断允许标志为禁止;②清除中断服务标志指令指令助记符:CLRIS指令格式:11,0001,11,0000,0000功能:清除中断用服务标志IS,该标志只能由硬件置位,软件清除;③清除堆栈溢出标志指令指令助记符:CLRSO指令格式:11,0010,11,0000,0000功能:清除堆栈标志SO,该标志只能由硬件置位,软件清除;④停机指令指令助记符:HLT指令格式:11,0011,11,0000,0001功能:使LS-IPU16处理器进入休眠状态,冻结LS IPU16处理器核的工作时钟;⑤软中断指令指令助记符:INT #no指令格式:11,1111,11,1111,#no功能:转入#no号中断服务程序,并通过设置中断服务标志来禁止后续中断;⑥NOP指令指令助记符:NOP指令格式:00,0000,00,0000,0000功能:该指令只是一个伪操作指令,该指令不实现任何操作,占用一个指令周期;⑦返回指令指令助记符:RET指令格式:1101,0011,0000,0000功能:从堆栈中弹出返回地址到PC中,实现中断的返回。
地址 710054陕西省西安市太乙路8号