10.03.2008, 12:39
общий
это ответ
Здравствуйте, Вячеслав Шинкаренко!
Не работает потому, что использование ссылок есть неявное использование указателей. Только в случае со ссылками, операции разыменования и взятия адреса компилятор оставляет за собой и код поэтому получается более удобочитаемым.
В ассемблерной вставке таких удобств уже нет, поэтому нужно либо явно использовать указатели, либо сохранять значения во временных переменных:
Приложение:
inline void rol(byte &h, byte &l, byte bit_ct){ byte h_t = h,l_t = l; __asm { mov al,l_t mov cl,bit_ct xor ah,ah rol ax,cl mov l_t,al or h_t,ah }; h = h_t; l = l_t;}