|
как считать для 4-х байтовой переменной (типа unsigned long) из одного из байтов напрямую значение? Нужно чтобы команда выполнялась за минимальное время.
unsigned long r1;
unsigned char r2;
....
r1=(30L<<16)|(123L<<8)|127L;
r2=*(&r1+1); // хочу 3байт переменной r1 (число 30) записать в r2
....
после компиляции:
MOV 0x27,#7F
MOV 0x26,#7B
MOV 0x25,#1E
MOV r1(0x24),#0x00
MOV r2(0x21),0x2B // т.е. берется значение "не того" байта (нужно чтобы вместо 0x2B было 0x25)
Что я те так делаю? Напрямую по адресу я считать не могу, так как адрес переменной за ранее не известен.
E-mail: info@telesys.ru