Знаменитая задача: как переставить два числа, не используя третье? Канонически решается так:
A = A + B
B = A − B
A = A − B
Однако ещё быстрее можно так:
A = A xor B
B = A xor B
A = A xor B
Или так:
push А
push B
pop А
pop B
Но я бы писал, использую третью переменную:
tmp = А
A = В
B = tmp
Да-да, пару тактов разбазарю. И, например, вместо INC А напишу А = А + 1. И не потому, что не знаю такие финты, а потому, что любой осёл поймёт, что тут написано. Глаз не зацепится, мозг будет сосредоточен на задаче, а не на способе её достичь.
«Ваша программа должна быть изменяема, иначе вы родили её мертвой», — сказал кто-то известный. Остаётся добавить: «Причём легко».