Прошу прощения за повторы.. неуспел поправить сообщение.. :-(
Хочу добавить, что если это сегмент кода (.cseg) то
.org 130 ;означает что реальный адрес 260 (те. 260-тый байт)
поскольку адресация двухбайтовая. К примеру если использовать косвенную адресацию,и командой lpm читать данные из флеш,то в регистры zh:zl необходимо записать именно 230.
ldi zl,low(230);
ldi zh,high(230);
lpm
;далее читаем r0 в котором лежит 0x12
.org 130
.db 0x12,0x14
....
зы: Но всеже лучше использовать ссылку на место во flash так:
ldi zl,low(data*2)
ldi zh,high(data*2);
lpm
;далее читаем r0 в котором лежит 0x12
data:
.db 0x12,0x14
....
Цитата
Маленький вопросик... Наверно 130 в данном случае это цифра в шеснадцатиричной системе..... Или я что-то непонимаю.....
И еще... При сумирувание однобайтных чисел: если число при сумирувании больше 255 то в определенном регистре в опреленном бите устанавливается единичка... А остаток от 255 заносится в один из регистров... Так вот... подскажите пожалуйста что это за регистр и что это за бит?
в десятичке-130, 0x130 и 130h (шеснадцатирич) , 0b0000000 - двоичка.
При сложении устанавл. перенос флаг "C" регистра SREG.
add r16,r17 ;сложение с переносом
adc r18,r19
При сумировании никуда ничего незаносится, а устанавливается флаг переноса, и если сложить два регистра без учета перполнения то данные потеряются. т.е 254 + 10 в регистре к которому прибавляли будет 8 и установиться флаг SREG.с.