• Extra (useless) instructions involving r7 and accumulator
    Why would the following line in C: XRAM00 |= 0x01; compile into this: mov dptr, #XRAM00 movx a, @dptr mov r7, a mov a, r7 orl a, #1 mov r7, a mov dptr, #XRAM00 mov a, r7 movx @dptr...
  • Extra (useless) instructions involving r7 and accumulator
    Why would the following line in C: XRAM00 |= 0x01; compile into this: mov dptr, #XRAM00 movx a, @dptr mov r7, a mov a, r7 orl a, #1 mov r7, a mov dptr, #XRAM00 mov a, r7 movx @dptr...
  • useless R7
    bit CheckPacket(void) { unsigned char idata *pBuf = g_UART0Buf; unsigned char len, checksum; if (*pBuf == PACKET_START_ID / 256) { pBuf++; if (*pBuf == PACKET_START_ID % 256) { pBuf++; len...
  • Useless Moves
    Is there a way to change the DEFINE statement to get rid of the two useless mov(s)? C51 COMPILER V6.02, COMPILATION OF MODULE MAIN OBJECT MODULE PLACED IN .\MAIN.OBJ COMPILER INVOKED BY: C:\PROGRAM...
  • Useless Moves
    Is there a way to change the DEFINE statement to get rid of the two useless mov(s)? C51 COMPILER V6.02, COMPILATION OF MODULE MAIN OBJECT MODULE PLACED IN .\MAIN.OBJ COMPILER INVOKED BY: C:\PROGRAM...