Опять и снова соглашаемся, что х таки да: состоит из 8 бит (хотя это и не принципиально).
Я не знаю, что обозначает int на языке примера в начале, поэтому на всякий случай обозначил явно размер.
Для большей наглядности берём микросхему (восьмибитную и) без аппаратного умножения - например AVR.
Для ещё большей наглядности считаем по формуле более сложной, чем просто "умножить на К либо на 1/К". В общем виде.
Код: Выделить всё
ldi ZH, high(Table * 2) ; таблица выровнена по 256-байтным границам, старший байт адреса не меняется
ldi ZL, low(Table * 2)
ldi counter, MaxCounter
next:
lpm temp, Z
; do something with temp - желательно не такое пошлое, как / существенно более интеллектуальное, чем "прокрутиться temp раз в пустом цикле"
; ... или кому и зачем надо это всё
inc ZL
;brne pc + 2 - не надо
;inc ZH
dec counter
brne next
Возвращаемся к формуле "x = x * 1.2", но начинаем с какого-нибудь другого значения - например, с 94 (в общем, опять же, виде).
Без промежуточных округлений в заранее подготовленной таблице было бы:
94 112.8=113 135.36=
135 162.432=
162 ...
С промежуточными округлениями (до 8 бит) "на лету" получалось бы:
94 113
136 163 ...
Даже если искомый конь так и не перестал быть сугубо сферическим - смысл-то не в коне, а в победе над оппонентом! Восемнадцать кульных смайлов.