ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
6 июля
173178 Топик полностью
AlexAbel (22.11.2009 20:52, просмотров: 216) ответил AlexAbel на Да вот пожауйста. У меня есть определённый стиль написания программ на ассемблере. Макросы типа _if_**_then / _else / _endif сделаны на подобии как в языке PASCAL - для лучшего понимания структуры программы. В качестве примера даю файл как это должно
Или вот как без #v реализовать ниже приведённый пример? Constants CODE ;-------------------------------------------------------------------------- INDEX_TABLE: ;CODE 0x3000 DB 0xFF,0xFF,0xFF,0xFF,0x02,0x04,0x06,0x08 Raschet CODE 0x100 VARIABLE Iadp = 0, Count = 0, Vadp = 0 KOFIC_TABLE: ; Коэффициенты Kadp 7, 8, 9, 10, 11, 12, 13, 14, 16, 17 Kadp 19, 21, 23, 25, 28, 31, 34, 37, 41, 45 Kadp 50, 55, 60, 66, 73, 80, 88, 97, 107, 118 Kadp 130, 143, 157, 173, 190, 209, 230, 253, 279, 307 Kadp 337, 371, 408, 449, 494, 544, 598, 658, 724, 796 Kadp 876, 963, 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066 Kadp 2272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358 Kadp 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899 Kadp 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767, 0 ; Таблица ADPCM_Table: Iadp = 0 while (Iadp <= 0x07) Count = 0 while (Count < 89) Vadp = Kadp#v(Count) >> 3 if (Iadp & 1) == 1 Vadp += Kadp#v(Count) >> 2 endif if (Iadp & 2) == 2 Vadp += Kadp#v(Count) >> 1 endif if (Iadp & 4) == 4 Vadp += Kadp#v(Count) endif DW Vadp Count++ endw Iadp++ endw END