new6666 0 8 февраля, 2005 Опубликовано 8 февраля, 2005 · Жалоба Имеются следующие куски кода на Асме для TMS320C6202: [A1] ADD .D1 A0, 1, A0 || [A2] STW .D2 A6, *B4++ || ZERO .L1 A2 || ADD .S2 B5, B6, B9 || ZERO .L2 B2 || [b0] B .S1 S1 И [A1] STW .D2 A9, *B4++ || [!A1] ZERO .S1 A0 || [!A1] CMPGT .L1 A0, 0, A2 || CMPGT .L2 B9, A3, B1 || LDH .D1 *A4++[2], B5 Хотелось бы понять: как будут влиять друг на друга инструкции, выполняющие операции с одними и теми же регистрами и работающие параллельно а именно: || [A2] STW .D2 A6, *B4++ || ZERO .L1 A2 они работают одновременно с A2 и || [!A1] ZERO .S1 A0 || [!A1] CMPGT .L1 A0, 0, A2 они работают одновременно с A0. В отладчике все пучком, но в жизни пока чего-то не очень. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbour 0 11 февраля, 2005 Опубликовано 11 февраля, 2005 · Жалоба Это все штучки assembler оптимизера - у меня были такие же сомнения когда я первый раз увидел во что он превратил мой стройный линейный asm. Самый верный способ - написание тестовых кусочков на которых нужно проверять код (в любом случае пригодится) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться