ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 апреля
166758 Топик полностью
Brains (16.09.2009 20:46, просмотров: 1) ответил rezident на А что получается, если квалификатор volatile в определении переменной in_byte убрать?
Все остается как и было и с оптимизацией и без. Volatile, как и объявление глобальной переменной я вынес когда пробовал разные варианты. Если переменная локальная, код генерируется еще смешнее: unsigned short in_byte; in_byte = P8IN; \ 000002 5F426102 MOV.B &P8IN, R15 \ 000006 4F4F MOV.B R15, R15 \ 000008 0A4F MOV.W R15, R10 Зачем так сложно, если можно MOV.B &P8IN, R10 ? Вообще-то мне нужно прочитать из внешней 16-битной памяти слово, но шина данных 8 бит, поэтому читать нужно сначала lowbyte, затем highbyte, а функция должна возвращать ushort. На ассемблере я могу написать легко: DATA_REG DS 2 MOV.B &P8IN,DATA_REG //младший байт MOV.B &P8IN,DATA_REG+1 //старший байт