News for hackers. Stuff that matters.
Re:How to program an NES game in C by alaties on Sunday August 13, 2017 @01:05PM (#15003744)
Depends on the compiler.

'a++' (postfix) and '++a' (prefix) have slightly different meanings in terms of return values. Postfix will return the value of 'a' before the increment, while prefix will return 'a' after the increment operation.

In a simple compiler, you would store the previous value of 'a' in the case of postfix in case you need to assign it. This results in a superfluous store instruction in most cases.

Of course, a smarter compiler could see the lack of assignment and throw away the store instruction during an optimization pass.

Re:How to program an NES game in C by evincarofautumn on Sunday August 13, 2017 @10:45PM (#15006313)
I’ve used crappy compilers where there’s essentially no optimisation, and moderately complex expressions produce absurd code, so if you want reasonable output, you end up writing the assembly you want in the notation of the higher-level language, like:

    /* a = (b * 2) + 1 */

    a = b;    /* mov a, b */
    a <<= 1;  /* shl a, 1 */
    a |= 1;   /* or a, 1 */
Re:How to program an NES game in C by pjmlp on Tuesday August 15, 2017 @09:35AM (#15018024)
TI used to have an Assembler that was exactly like that, don't recall for which processor though.