Посмотреть вложение 90944
Добро пожаловать в 8-битный мир
Аккумулятор А, как и регистр В 8-битные и соответственно могут хранить число 0-255
При умножение (mul AB) результат хранится сразу в двух регистрах в В старший байт в А младший
MUL AB - умножение.
Описание: перемножает целые восьмибитовые беззнаковые числа, хранящиеся в аккумуляторе и регистре В. Старший байт 16-битового произведения помещается в регистр В, а младший байт - в регистр А.
Пример: MUL AB
Количество байт: 1
Количество циклов: 4
Действие команды: (PC) = (PC) + 1
(A) = Low((A)*(B))
(B) = High(A)*(B)
Машинный код:
1 0 1 0 0 1 0 0
Поэтому на 6 умножаем легко, а вот деление на 4 любителям Бейсика и дробных чисел потом конечно даётся тяжело, но я подскажу:
Разделить на 4 это тоже самое что всё это побитово два раза сдвинуть вправо:
http://www.gaw.ru/html.cgi/txt/doc/micros/mcs51/asm/start.htm
CLR C (сбрасываем бит переноса)
XCH A,B (меняем значения между А и В)
RRC A (сдвигаем право с учётом бита переноса А)
XCH A,B (опять меняем значения между А и В)
RRCA (сдвигаем право с учётом бита переноса А)
CLR C (повторяем это ещё раз)
XCH A,B
RRC A
XCH A,B
RRCA
Тем самым и значение в 16 битах которые хранятся в регистрах ВА разделили на 4 побитно всё сдвинув 2 раза вправо
Теперь в регистре А хранится скорректированная под твой датчик скорость. Значением в регистре В можно пренебречь, ибо скорость может принимать значения 0-255 ... В общем теперь значение регистра А просто сохраняем в XRAM:F8AE
Осталось тебе просто перекинуть весь код в ассемблер добавить нужный код и перекомпилировать прошивку. Но будь внимателен - когда ты добавишь строчки кода, то с количеством добавленного при компиляции у тебя всё что после добавленного кода сдвинется на количество байт равных количеству байт нового добавленного кода, поэтому не забудь где-нибудь в нужном пустом месте кода, к примеру по адресу 5F00, в ассемблере вставить команду ORG 5F00h чтобы у тебя вся область калибровок и всё что после 5F00 не сползло на количество байт добавленного кода ...