ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
381245 Топик полностью
AD (17.01.2013 14:12, просмотров: 193) ответил koyodza на в Вашем случае (при пред-коррекции) нужно наложить маску на исходное число, если там не 0, то прибавить константу, а не единицу (попробуйте поделить -5 на 8 своим методом), а это может оказаться сложнее, чем пользоваться сложением с флагом переноса
Напишите проще 
     45              if (x < 0)
   \   00000042   23FF               TST     R31
   \   00000044   F40A               BRPL    ??main_0
     46                  x += 7;
   \   00000046   9637               ADIW    R31:R30, 7
     47              x >>= 3;
     48              PORTE = x;
   \                     ??main_0:
   \   00000048   95F5               ASR     R31
   \   0000004A   95E7               ROR     R30
   \   0000004C   95F5               ASR     R31
   \   0000004E   95E7               ROR     R30
   \   00000050   95F5               ASR     R31
   \   00000052   95E7               ROR     R30