c语言散转指令,一种处理C语言SWITCH/CASE语句的方法与流程

1c36264571d92abd6d062c6cd50eceed.gif

本发明属于计算机领域,具体涉及一种处理C语言SWITCH/CASE语句的方法。

背景技术:

C语言SWITCH/CASE语句是大家经常用到的语句,从字面上看程序逻辑清晰,结构一目了然,很受程序员欢迎,但是基于现有的指令集,C编译器编译C语言SWITCH/CASE语句成汇编指令时相当费劲。目前C编译器处理C语言SWITCH/CASE语句时通常使用两种方法,它们是:列表驱动法和逐项查找法。其中列表驱动法是在程序存贮器中建立一个常数的数组,该数组是所有CASE常数项所对应的跳转矢量的集合,所以该数组被称为CASE跳转矢量表,某个CASE常数项对应的跳转矢量在该表格的位置等于该CASE常数项与最小CASE常数项的差值,然后使用SWITCH的表达式的值减去最小CASE常数项的差值去索引所述的CASE跳转矢量表,从而得到跳转的目标,这种方法处理速度很快,也是C编译器优先使用的方法;而逐项查找法是使用SWITCH的表达式的值和CASE常数项逐个比较,如果有相等,则跳转到该CASE常数项所对应的地址,也就是说C编译器使用if/else的方法从上往下逐个比较,从而找到跳转的目标,这就造成了越靠后的case项查找的时间就越长,所以这种方法处理速度很慢。

虽然列表驱动法具有快速的优点,但是那是用空间换取时间。该方法的缺点是CASE跳转矢量表的规模往往很大,其大小等于CASE常数项的最大值与最小值的差值+1,在实际应用中,CASE常数项的离散性往往很大,没有规律可循,那么CASE跳转矢量表就有很多空白项,这会浪费很多程序空间。如果浪费程序的空间过多,C编译器只好使用逐项查找法进行编译。另外,如果case项比较少,C编译器也会使用逐项查找法进行编译。

例如下面这段C语言代码,如果使用列表驱动法进行编译,则CASE跳转矢量表长达247项(246=0xf7-0x01+1),而实际有用的case项只有4个(0x01,0x22,0x4c,0xf7),显然浪费的程序空间太多了,所以C编译器就会使用逐项查找法进行编译。

汇编代码如下:(逐项查找法,使用ARM指令集)

从上面的汇编代码可以看出,在使用逐项查找法时,越靠后的case项查找的时间就越长,因此改善逐项查找法的执行效率具有重要意义。

观察C程序中的SWITCH/CASE语句不难发现,在绝大多数SWITCH/CASE语句中:SWITCH表达式的值的字长为8位或16位,CASE常数项所对应的跳转都是小范围相对跳转,而且都是往前跳转。

技术实现要素:

本发明提供一种处理C语言SWITCH/CASE语句的方法,能够产生简洁高效的代码,以提高计算机的执行速度。

一种处理C语言SWITCH/CASE语句的方法,该方法包括如下内容:

在现有的指令系统中增加3条指令,它们是字节型查找指令、半字型查找指令、散转指令;

所述的字节型查找指令包含目的寄存器、第一源寄存器和第二源操作数;其中,所述字节型查找指令的目的寄存器是通用寄存器或PSR(即程序状态寄存器),所述字节型查找指令的第一源寄存器是通用寄存器,所述字节型查找指令的第二源操作数是通用寄存器或立即数;采用所述的字节型查找指令的助记符为CASEB,那么该字节型查找指令的汇编格式是:CASEB Rd,Rs,Rt或者CASEB Rd,Rs,#imm,其中Rd是目的寄存器,Rs是第一源寄存器,Rt是第二源寄存器,#imm是立即数;对于指令CASEB Rd,Rs,Rt来说:如果Rt是32位通用寄存器,那么Rt里面装载的是4个字长为字节的常数,如果Rt是64位通用寄存器,那么Rt里面装载的是8个字长为字节的常数;对于指令CASEB Rd,Rs,#imm来说:如果#imm是32位立即数,那么该#imm是由4个字长为字节的常数组成,如果#imm是16位立即数,那么该#imm是由2个字长为字节的常数组成;

所述的字节型查找指令的处理内容是:将字节型查找指令的第一源寄存器(Rs)中的第0字节同时分别与字节型查找指令的第二源操作数(Rt或#imm)中的所有字长为字节的常数进行比较,如果在这些比较运算中有一个运算结果为相等,那么置相等标记z为1,否则置相等标记z为0,并且按照一定的优先级顺序来选择其中一个运算结果为相等的、参与该字节型查找指令的比较运算的常数处于字节型查找指令的第二源操作数(Rs或#imm)中的位置序号n,再把该位置序号n以及相等标记z保存到字节型查找指令的目的寄存器Rd;

所述的半字型查找指令包含目的寄存器、第一源寄存器和第二源操作数;其中,所述半字型查找指令的目的寄存器是通用寄存器或PSR(即程序状态寄存器),所述半字型查找指令的第一源寄存器是通用寄存器,所述半字型查找指令的第二源操作数是通用寄存器或立即数;采用所述的半字型查找指令的助记符为CASEH,那么半字型查找指令的汇编格式是:CASEHRd,Rs,Rt,或者CASEH Rd,Rs,#imm,其中Rd是目的寄存器,Rs是第一源寄存器,Rt是第二源寄存器,#imm是立即数;对于指令CASEH Rd,Rs,Rt来说:如果Rt是32位通用寄存器,那么Rt里面装载的是2个字长为半字的常数,如果Rt是64位通用寄存器,那么Rt里面装载的是4个字长为半字的常数;对于指令CASEH Rd,Rs,#imm来说:如果#imm是32位立即数,那么该#imm是由2个字长为半字的常数组成;

所述的半字型查找指令的处理内容是:将半字型查找指令的第一源寄存器(Rs)中的第0半字同时分别与半字型查找指令的第二源操作数(Rt或#imm)中的所有字长为半字的常数进行比较,如果在这些比较运算中有一个运算结果为相等,那么置相等标记z为1,否则置相等标记z为0,并且按照一定的优先级顺序来选择其中一个运算结果为相等的、参与该半字型查找指令的比较运算的常数处于半字型查找指令的第二源操作数(Rs或#imm)中的位置序号n,再把该位置序号n以及相等标记z保存到半字型查找指令的目的寄存器Rd;

所述的散转指令包含第一源寄存器和第二源操作数;其中,所述散转指令的第一源寄存器是通用寄存器或PSR(即程序状态寄存器),该散转指令的第一源寄存器包含使能位z和索引值n;所述散转指令的第二源操作数是通用寄存器或立即数;采用所述的散转指令的助记符为SWITCH,那么该散转指令的汇编格式是:SWITCH Rs,Rt或SWITCH Rs,#imm,其中Rs是第一源寄存器,Rt是第二源寄存器,#imm是立即数;如果Rt是32位通用寄存器,那么Rt里面装载的是4个字长为字节的常数;如果Rt是64位通用寄存器,那么Rt里面装载的是8个字长为字节的常数;如果#imm是32位立即数,那么该#imm是由4个字长为字节的常数组成,如果#imm是16位立即数,那么该#imm是由2个字长为字节的常数组成;

所述的散转指令的处理内容是:如果散转指令的Rs中的能使位z为真,那么使用散转指令的Rs中的索引值n选择第二源操作数(Rt或#imm)中的一个字长为字节的常数作为跳转矢量(该跳转矢量是无符号数),然后用该跳转矢量与当前的PC值相加,相加的结果就是跳转的目标地址,从而完成跳转;如果散转指令的Rs中的能使位z为假,则顺序执行;

所述的散转指令另外还设定:散转指令的第一源寄存器中的能使位z是对应于字节型查找指令和半字型查找指令的目的寄存器中的相等标记z,而散转指令的第一源寄存器中的索引值n是对应于字节型查找指令和半字型查找指令的目的寄存器中的位置序号n,这样做就使得字节型查找指令和半字型查找指令的执行结果值直接被散转指令使用。

在编译C语言SWITCH/CASE语句时,采用如下编译步骤:

第一步是根据C语言SWITCH表达式的值的字长来选择字节型查找指令或半字型查找指令,查找相等的CASE常数项,具体是:

如果C语言SWITCH表达式的值的字长为8位,那么CASE常数项的字长也是8位,所以要使用字节型查找指令(CASEB Rd,Rs,Rt或者CASEB Rd,Rs,#imm)来查找相等的CASE常数项;如果C语言SWITCH表达式的值的字长为16位,那么CASE常数项的字长也是16位,所以要使用半字型查找指令(CASEH Rd,Rs,Rt或者CASEH Rd,Rs,#imm)来查找相等的CASE常数项。查找的方法是:将若干个待查找的CASE常数项按照一定的顺序填满第二源操作数(Rt或#imm)和把SWITCH表达式的值装入源寄存器(Rs)中,执行字节型查找指令或半字型查找指令后,在其目的寄存器(Rd)就得到相等标记z和位置序号n。另外,如果待查找的CASE常数项不够填满第二源操作数(Rt或#imm),那么重复使用其中某一个待查找的CASE常数项来填充,直到填满为止。

第二步是使用所述的散转指令根据上述第一步的字节型查找指令或半字型查找指令的结果值来索引跳转矢量,完成分支转移,具体是:

将构成第一步的字节型查找指令或半字型查找指令的第二源操作数(Rt或#imm)的CASE常数项所对应的跳转矢量装入散转指令的第二源操作数(Rt或#imm)中,并且要求各CASE常数项所对应的跳转矢量处于该散转指令的第二源操作数(Rt或#imm)中的位置顺序是与该CASE常数项处于字节型查找指令或半字型查找指令的第二源操作数(Rt或#imm)的位置顺序相同。由于散转指令的第一源寄存器中的能使位z是对应于字节型查找指令和半字型查找指令的目的寄存器中的相等标记z,还有散转指令的第一源寄存器中的索引值n是对应于字节型查找指令和半字型查找指令的目的寄存器中的位置序号n,所以如果散转指令的第一源寄存器等于字节型查找指令或半字型查找指令的目的寄存器,那么执行散转指令就可以索引到正确的跳转矢量,并根据其能使位z的状态决定跳转还是顺序执行。

本发明方法和本方法的计算机指令,使得C编译器利用这些指令来编译C语言SWITCH/CASE语句时,能够产生简洁高效的代码,其汇编代码非常简短,能够显著提高计算机的执行效率。

附图说明

图1描绘了本发明方法基于32位的寄存器或立即数的字节型查找指令的功能原理图。

图2描绘了本发明方法基于32位的寄存器或立即数的半字型查找指令的功能原理图。

图3描绘了本发明方法基于32位的寄存器或立即数的散转指令的功能原理图。

图4描绘了本发明方法基于16位立即数的字节型查找指令的功能原理图。

图5描绘了本发明方法基于16位立即数的散转指令的功能原理图。

图6描绘了本发明方法基于64位寄存器的字节型查找指令的功能原理图。

图7描绘了本发明方法基于64位寄存器的半字型查找指令的功能原理图。

图8描绘了本发明方法基于64位寄存器的散转指令的功能原理图。

优先实施例描述

参考图1描绘了本发明方法基于32位的寄存器或立即数的字节型查找指令的功能原理图,该原理图中包含有1个第一源寄存器Rs(U0)、1个第二源操作数(32位的寄存器Rt或立即数#imm)(U1)、4个相等比较器(U2、U3、U4、U5)、1个四输入或门(U6)和4个二选一数据选择器(U7、U8、U9、U10)、1个目的寄存器Rd(U11)。U0中的第0字节(byte0)分别输入4个相等比较器(U2、U3、U4、U5)的一个输入端,而U1中的4个字长为8位的常数(byte0,byte1,byte2,byte3)分别输入4个相等比较器(U2、U3、U4、U5)的另一个输入端,这4个相等比较器(U2、U3、U4、U5)输出4个标志信号(z0、z1、z2、z3):如果U2的比较结果为相等,则标志信号z0=1,否则z0=0;如果U3的比较结果为相等,则标志信号z1=1,否则z1=0;如果U4的比较结果为相等,则标志信号z2=1,否则z2=0;如果U5的比较结果为相等,则标志信号z3=1,否则z3=0。这4个标志信号(z0、z1、z2、z3)一路送入U6的输入端,而另一路分别送入4个二选一数据选择器(U7、U8、U9、U10)的选择端,即z0控制U7,z1控制U8,z2控制U9,z3控制U10。如果z0等于1,则U7输出0,否则U7输出U8的输出值;如果z1等于1,则U8输出1,否则U8输出U9的输出值;如果z2等于1,则U9输出2,否则U9输出U10的输出值;如果z3等于1,则U10输出3,否则U10输出0。U6输出的数值就是相等标记z,而U7输出的数值n就是按照一定的优先级顺序选择其中一个比较运算结果为相等的、参与该比较运算的8位常数处于该第二源操作数(U1)中的位置序号,再把U7输出的数值n以及U6输出的相等标记z保存到目的寄存器Rd(U11)。从图1可以看出,4个相等比较器(U2、U3、U4、U5)输出的4个标志信号(z0、z1、z2、z3)的优先级大小顺序是:z0>z1>z2>z3。

参考图2描绘了本发明方法基于32位的寄存器或立即数的半字型查找指令的功能原理图,该原理图中包含有1个第一源寄存器Rs(U0)、1个第二源操作数(32位的寄存器Rt或立即数#imm)(U1)、2个相等比较器(U2、U3)、1个二输入或门(U4)和2个二选一数据选择器(U5、U6)、1个目的寄存器Rd(U7)。U0中的第0半字(half0)分别输入2个相等比较器(U2、U3)的一个输入端,而U1中的2个字长为16位的常数(half 0,half1)分别输入到2个相等比较器(U2、U3)的另一个输入端,这2个相等比较器(U2、U3)输出2个标志信号(z0、z1):如果U2的比较结果为相等,则标志信号z0=1,否则z0=0;如果U3的比较结果为相等,则标志信号z1=1,否则z1=0。这2个标志信号(z0、z1)一路送入U4的输入端,而另一路分别送入2个二选一数据选择器(U5、U6)的选择端,即z0控制U5,z1控制U6。如果z0等于1,则U5输出0,否则U5输出U6的输出值;如果z1等于1,则U6输出1,否则U6输出0。U6输出的数值就是相等标记z,而U5输出的数值n就是按照一定的优先级顺序选择其中一个比较运算结果为相等的、参与该比较运算的16位常数处于该第二源操作数(U1)中的位置序号,再把U5输出的数值n以及U4输出的相等标记z保存到目的寄存器Rd(U7)。从图2可以看出,2个相等比较器(U2、U3)输出的2个标志信号(z0、z1)的优先级大小顺序是:z0>z1。

参考图3描绘了本发明方法基于32位的寄存器或立即数的散转指令的功能原理图,该原理图中包含有1个第一源寄存器Rs(U0)、1个第二源操作数(32位的寄存器Rt或立即数#imm)(U1)、1个四选一数据选择器(U2)、1个加法器(U3)、1个二选一数据选择器(U4)。将U1中的4个字长为8位的常数(byte0,byte1,byte2,byte3)分别送入U2的4个输入端,而U0的索引值n送入U2的选择端,实现由U0的索引值n选择U2的4个输入端中的一个数据作为U2的输出值。U2的输出值与当前PC值(PC_current)分别送入加法器U3的两个输入端进行加法运算,加法器U3输出的运算结果与顺序执行的下一条指令的地址(PC_next)分别送入U4的两个数据送入端口,而U0的使能位z送入U4的选择端,由U0的使能位z选择U4的两个数据送入端的其中一个数据作为U4的输出值:如果U0的使能位z为1,则U4选择U3输出值作为U4的输出值,否则U4选择下一条指令的地址值(PC_next)作为U4的输出值。

参考图4描绘了本发明方法基于16位立即数的字节型查找指令的功能原理图,该原理图中包含有1个第一源寄存器Rs(U0)、1个第二源操作数(16位的立即数#imm)(U1)、2个相等比较器(U2、U3)、1个二输入或门(U4)和2个二选一数据选择器(U5、U6)、1个目的寄存器Rd(U7)。U0中的第0字节(byte0)分别输入2个相等比较器(U2、U3)的一个输入端,而U1中的2个字长为8位的常数(byte0,byte1)分别输入到2个相等比较器(U2、U3)的另一个输入端,这2个相等比较器(U2、U3)输出2个标志信号(z0、z1):如果U2的比较结果为相等,则标志信号z0=1,否则z0=0;如果U3的比较结果为相等,则标志信号z1=1,否则z1=0。这2个标志信号(z0、z1)一路送入U4的输入端,而另一路分别送入2个二选一数据选择器(U5、U6)的选择端,即z0控制U5,z1控制U6。如果z0等于1,则U5输出0,否则U5输出U6的输出值;如果z1等于1,则U6输出1,否则U6输出0。U6输出的数值就是相等标记z,而U5输出的数值n就是按照一定的优先级顺序选择其中一个比较运算结果为相等的、参与该比较运算的16位常数处于该第二源操作数(U1)中的位置序号,再把U5输出的数值n以及U4输出的相等标记z保存到目的寄存器Rd(U7)。从图4可以看出,2个相等比较器(U2、U3)输出的2个标志信号(z0、z1)的优先级大小顺序是:z0>z1。

参考图5描绘了本发明方法基于16位立即数的散转指令的功能原理图,该原理图中包含有1个第一源寄存器Rs(U0)、1个第二源操作数(16位的立即数#imm)(U1)、1个二选一数据选择器(U2)、1个加法器(U3)、1个二选一数据选择器(U4)。将U1中的2个字长为8位的常数(byte0,byte1)分别送入U2的2个输入端,而U0的索引值n送入U2的选择端,实现由U0的索引值n选择U2的2个输入端中的一个数据作为U2的输出值。U2的输出值与当前PC值(PC_current)分别送入加法器U3的两个输入端进行加法运算,加法器U3输出的运算结果与顺序执行的下一条指令的地址(PC_next)分别送入U4的两个数据送入端口,而U0的使能位z送入U4的选择端,由U0的使能位z选择U4的两个数据送入端的其中一个数据作为U4的输出值:如果U0的使能位z为1,则U4选择U3输出值作为U4的输出值,否则U4选择下一条指令的地址值(PC_next)作为U4的输出值。

参考图6描绘了本发明方法基于64位寄存器的字节型查找指令的功能原理图,该原理图中包含有1个第一源寄存器Rs(U0)、1个第二源操作数(64位寄存器Rt)(U1)、8个相等比较器(U2、U3、U4、U5,U6、U7、U8、U9)、1个八输入或门(U10)和8个二选一数据选择器(U11、U12、U13、U14,U15、U16、U17、U18)、1个目的寄存器Rd(U19)。U0的第0字节(byte0)分别输入8个相等比较器(U2、U3、U4、U5,U6、U7、U8、U9)的一个输入端,而U1中的8个字长为8位的常数(byte0,byte1,byte2,byte3,byte4,byte5,byte6,byte7)分别输入到8个相等比较器(U2、U3、U4、U5,U6、U7、U8、U9)的另一个输入端,该8个相等比较器(U2、U3、U4、U5,U6、U7、U8、U9)分别输出8个标志信号(z0、z1、z2、z3、z4、z5、z6、z7):如果U2的比较结果为相等,则标志信号z0=1,否则z0=0;如果U3的比较结果为相等,则标志信号z1=1,否则z1=0;如果U4的比较结果为相等,则标志信号z2=1,否则z2=0;如果U5的比较结果为相等,则标志信号z3=1,否则z3=0;如果U6的比较结果为相等,则标志信号z4=1,否则z4=0;如果U7的比较结果为相等,则标志信号z5=1,否则z5=0;如果U8的比较结果为相等,则标志信号z6=1,否则z6=0;如果U9的比较结果为相等,则标志信号z7=1,否则z7=0。这8个标志信号(z0、z1、z2、z3、z4、z5、z6、z7)一路送入八输入或门(U10)的输入端,另一路分别送入8个二选一数据选择器(U11、U12、U13、U14,U15、U16、U17、U18)的选择端,即z0控制U11,z1控制U12,z2控制U13,z3控制U14,z4控制U15,z5控制U16,z6控制U17,z7控制U18。如果z0等于1,则U11输出0,否则U11输出U12的输出值;如果z1等于1,则U12输出1,否则U12输出U13的输出值;如果z2等于1,则U13输出2,否则U13输出U14的输出值;如果z3等于1,则U14输出3,否则U14输出U15的输出值;如果z4等于1,则U15输出4,否则U15输出U16的输出值;如果z5等于1,则U16输出5,否则U16输出U17的输出值;如果z6等于1,则U17输出6,否则U17输出U18的输出值;如果z7等于1,则U18输出7,否则U18输出0值。八输入或门U10输出的数值就是相等标记z,而U11输出的数值n就是按照一定的优先级顺序选择其中一个比较运算结果为相等的、参与该比较运算的8位常数处于该第二源操作数(U1)中的位置序号,再把U11输出的数值n以及U10输出的相等标记z保存到目的寄存器Rd(U19)。从图6可以看出,8个相等比较器(U2、U3、U4、U5,U6、U7、U8、U9)输出的8个标志信号(z0、z1、z2、z3、z4、z5、z6、z7)的优先级大小顺序是:z0>z1>z2>z3>z4>z5>z6>z7。

参考图7描绘了本发明方法基于64位寄存器的半字型查找指令的功能原理图,该原理图中包含有1个第一源寄存器Rs(U0)、1个第二源操作数(64位寄存器Rt)(U1)、4个相等比较器(U2、U3、U4、U5)、1个四输入或门(U6)和4个二选一数据选择器(U7、U8、U9、U10)、1个目的寄存器Rd(U11)。U0中的第0半字(half0)分别输入4个相等比较器(U2、U3、U4、U5)的一个输入端,而U1中的4个字长为16位的常数(half0,half1,half2,half3)分别输入4个相等比较器(U2、U3、U4、U5)的另一个输入端,这4个相等比较器(U2、U3、U4、U5)输出4个标志信号(z0、z1、z2、z3):如果U2的比较结果为相等,则标志信号z0=1,否则z0=0;如果U3的比较结果为相等,则标志信号z1=1,否则z1=0;如果U4的比较结果为相等,则标志信号z2=1,否则z2=0;如果U5的比较结果为相等,则标志信号z3=1,否则z3=0。这4个标志信号(z0、z1、z2、z3)一路送入U6的输入端,而另一路分别送入4个二选一数据选择器(U7、U8、U9、U10)的选择端,即z0控制U7,z1控制U8,z2控制U9,z3控制U10。如果z0等于1,则U7输出0,否则U7输出U8的输出值;如果z1等于1,则U8输出1,否则U8输出U9的输出值;如果z2等于1,则U9输出2,否则U9输出U10的输出值;如果z3等于1,则U10输出3,否则U10输出0。U6输出的数值就是相等标记z,而U7输出的数值n就是按照一定的优先级顺序选择其中一个比较运算结果为相等的、参与该比较运算的16位常数处于该第二源操作数(U1)中的位置序号,再把U7输出的数值n以及U6输出的相等标记z保存到目的寄存器Rd(U11)。从图7可以看出,4个相等比较器(U2、U3、U4、U5)输出的4个标志信号(z0、z1、z2、z3)的优先级大小顺序是:z0>z1>z2>z3。

在图8描绘了本发明方法基于64位寄存器的散转指令的功能原理图,该原理图中包含有1个第一源寄存器Rs(U0)、1个第二源操作数(64位的寄存器Rt)(U1)、1个八选一数据选择器(U2)、1个加法器(U3)、1个二选一数据选择器(U4)。将U1中的8个字长为8位的常数(byte0,byte1,byte2,byte3,byte4,byte5,byte6,byte7)分别送入U2的8个输入端,而U0的索引值n送入U2的选择端,实现由U0的索引值n选择U2的8个输入端中的一个数据作为输出值。U2的输出值与当前PC值(PC_current)分别送入加法器U3的两个输入端进行加法运算,加法器U3输出的结果与顺序执行的下一条指令的地址(PC_next)分别送入U4的两个数据送入端口,而U0的使能位z送入U4的选择端,由U0的使能位z选择U4的两个数据送入端的中一个数据作为输出值:如果U0的使能位z为1,则U4选择U3输出值作为U4的输出值,否则U4选择下一条指令的地址值(PC_next)作为U4的输出值。

使用本发明的方法,同样要处理背景技术所述的C程序:

假设test的字长为字节,指令系统可以携带32位立即数,那么使用本发明的方法,其汇编代码如下:

如果test的字长为半字,指令系统可以携带32位立即数,那么使用本发明的方法,其汇编代码如下:

从以上的汇编代码可以看到,由CASE常数项构成的字节型查找指令或半字型查找指令的第二源操作数(通用寄存器或立即数)的位置顺序是与由该CASE常数项所对应的跳转矢量所构成的散转指令的第二源操作数(通用寄存器或立即数)的位置顺序完全相同。

对比处理背景技术所述的汇编代码不难发现,使用本发明方法的指令,其汇编代码非常简短,能够显著提高计算机的执行效率。

本发明的实施方式不限于此,按照本发明的上述内容,利用本领域的普通技术知识和惯用手段,在不脱离本发明的上述基本技术思想前提下,本发明还可以做出其它多种形式的修改、替换或变更,均落在本发明权利保护范围之内。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值