ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
4142 Топик полностью
Bill (12.01.2004 23:37, просмотров: 1) ответил SM на Так это абсолютно нормально (+)
для UNICODE. Правда, такой пример на практике редко можно встретить. Но, тем не менее... Для 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 далеко позади.