Цитата(Alex11 @ Feb 23 2007, 16:18)

Для IAR выражение curr_pos = curr_pos_lsb + curr_pos_msb<<8; тоже не корректно. Так можно делать, но следует написать curr_pos = curr_pos_lsb + (unsigned int)curr_pos_msb<<8; и после этого все хорошо.
Почитайте ещё раз мой последний пост - там вы найдёте слово в слово то что написали вы + в примере убедитесь (если понимаете ассемблер), что IAR коректно обрабатывает строчку и без приведения типов.