ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
4143 Топик полностью
Bill (12.01.2004 23:51, просмотров: 1) ответил Bill на для UNICODE. Правда, такой пример на практике редко можно встретить. Но, тем не менее...
Sorry, форматирование сбилось. Для MSP компилятор сгенерировал такой код (возможно, вручную его можно слегка улучшить).
     41          	while (*--dst = *--src);
   \                     ??revcpy_0:
   \   000000   3C50FEFF             ADD.W   #0xfffe, R12
   \   000004   3E50FEFF             ADD.W   #0xfffe, R14
   \   000008   2F4E                 MOV.W   @R14, R15
   \   00000A   8C4F0000             MOV.W   R15, 0(R12)
   \   00000E   0F93                 CMP.W   #0x0, R15
   \   000010   F723                 JNE     ??revcpy_0
Для AVR компилятор сгенрировал такой код (по-моему, короче его не сделаешь).
    191          	while (*--dst = *--src);
   \                     ??revcpy_0:
   \   00000006   911E                       LD      R17,-X
   \   00000008   910E                       LD      R16,-X
   \   0000000A   9312                       ST      -Z,R17
   \   0000000C   9302                       ST      -Z,R16
   \   0000000E   2B01                       OR      R16,R17
   \   00000010   F7D1                       BRNE    ??revcpy_0
Данный пример показывает, что наличие эффективных методов адресации зачастую важнее, чем разрядность данных. Конечно, когда речь идет об арифметике, то MSP должен оставить AVR далеко позади.