完成相同的工作,汇编代码也不一样,当然效率也不一样,下面是几段完成相同功能,但C语言表达方式不一样,使得汇编的代码也不一样,从中可以总结用Keil C51编写高效C代码的经验。
1。 代码段比较1
代码1(高效):
538: if (currPrintingByte < 9 && currPrintingByte > 0){
C:0x06EC E53A MOV A,currPrintingByte(0x3A)
C:0x06EE C3 CLR C
C:0x06EF 9409 SUBB A,#0x09
C:0x06F1 4003 JC C:06F6
C:0x06F3 0204FE LJMP C:04FE
C:0x06F6 E53A MOV A,currPrintingByte(0x3A)
C:0x06F8 9400 SUBB A,#CmdBuff(0x00)
C:0x06FA 5003 JNC C:06FF
C:0x06FC 0204FE LJMP C:04FE
539: Pmr_HoriZoomIn = currPrintingByte;
C:0x06FF 853A2B MOV Pmr_HoriZoomIn(0x2B),currPrintingByte(0x3A)
<