Вы можете просто сделать xor персонажа с собой, смещенного вправо на одно место, чтобы получить представление Грея, без необходимости петли. Пример, когда ваш персонаж в AL:
mov bl, al
shr bl, 1
xor al, bl
AL теперь является кодом Грея.
В C это будет:
c^=c>>1;
Чтобы вернуться к двоичному представлению, вы можете записать код Грея самостоятельно, сдвинув его вправо, уменьшив степени 2, начиная с наибольшей степени 2, которая меньше размера данных, например:
mov bl, al
shr bl, 4
xor al, bl
mov bl, al
shr bl, 2
xor al, bl
mov bl, al
shr bl, 1
xor al, bl
В C это будет:
c^=c>>4; c^=c>>2; c^=c>>1;