Для округления значения, кратного восьми, требуется два оператора и нет циклов:
add r9, 7
and r9, 0fffffffffffffff8H
Первый перемещает любое значение, которое не уже aкратное восьми в «следующий наивысший раздел».Вторые раунды, которые понижаются до кратного восьми.Таким образом, вы получите такие результаты:
orig add and
0 7 0
1 8 8
: : :
7 14 8
8 15 8
9 16 16
Обратите внимание, что если вы хотите округлить даже те числа, которые уже кратны восьми (например, 8 -> 16
), простодобавь восемь вместо семи.