Многие наверняка нижеописанное знают, однако, мало ли. Чуток оффтопного капитанства в продолжение темы байта.
Принимать он может 256 значений, часто применяются лукап-таблицы по 256 байт (или 256+256 для 16-битных слов), но я не про это.
У восьмиразрядного счетчика, коим является байт - ну или регистр, что чаще - есть одно замечательное свойство.
Неважно, какое значение мы прибавляем к байту (регистру) - через 256 повторов мы получим изначальное содержимое счетчика.
Для четных приращений оно "вернется" раньше, кратно степени двойки, т.е. на 256 повторов получим 2/4/8 и так далее возвратов к исходному числу.
Для любой нечетной прибавки, хоть +1, хоть +171, через 256 шагов счетчик примет исходный вид. Разумеется, оперируя байтом, а не словом.
Соответственно, если с неким шагом перебирать таблицу в 256 байт через приращение младшего регистра в паре, за 256 проходов она гарантированно будет обработана.




Ответить с цитированием
