
Сообщение от
kondor3000
stdenits , для отображения переменной типа INT, в дисплее надо поставить формат DEC.
INT это 1 регистр, поэтому WORD а не DWORD.
Возможно я не так выразился или вы меня не поняли.
Код:
// в промежуточную переменную типа Float (tmp_val) заносим сумму или разность считанного значения типа DWord (temp_value) и дельты delta типа Int (в зависимости от знака дельты)
// Здесь же преобразуем DWord (temp_value) в Float
tmp_val = (delta >= 0) ? (DWord_2_Float(temp_value) + delta) : (DWord_2_Float(temp_value) - (delta * -1));
// заносим значение промежуточной переменной tmp_val в регистр, например, PSW300 (и 301) - который и отображается в дисплее с типом DWord и форматом Float
*(float*)(PSW+300) = tmp_val;
Всё вычисляется и отображается как надо, если delta положительная (допустим, 0, 10 или 30).
Если delta отрицательная (например, -3) и надо вычислить разность - выводится фигня, типа 6.86+??.