ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
21 июля
43107 Топик полностью
POV (02.11.2005 12:12, просмотров: 1) ответил bialix на Ответ:
В общем эти жалкие такты ничто по сравнению... с размерами кода "увеличения на 1 DWORD" на асм и то, что кейл сделал. разница в разы, но... без этого но С вообще бы не пользовали. не могу пока компактно вставить асм-кусок вида clr a inc m0 cjne a,m0,loop inc m1 cjne a,m1,loop inc m2 cjne a,m2,loop inc m3 т.к. асм-у трубется указать явные адреса m0...m3 ячеек хранящих байты числа DWORD. Получилось только с использованием _at_: extern DWORD counter; BYTE *m0 _at_ cnt_replace; void inc_DWORD() { m0 = &counter; #pragma asm push psw push 0 mov r0,cnt_replace inc @r0 cjne @r0,#0,loop inc r0 inc @r0 cjne@r0,#0,loop inc r0 inc @r0 cjne @r0,#0,loop inc r0 inc @r0 loop: pop 0 pop psw #pragma endasm } Как-то грубова-то вышло и я пока еще на знаю как компилятор относится к этому _at_ - не потрёт-ли другими переменными? Да пока толькодобился компиляции без проверки работоспособности в реале.