Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
;----- *ptr = 7 -----(Регистры Z у нас пока смотрят на ptr)
ld r16, Z ; а в ptr у нас &Massiv[0].
ld r17, Z+1
movw r30,r16 ; теперь Z смотрит на Massiv[0]
ldi r16, 7
st Z, r16
ldi r16,0
st Z+1, r16 ; 0007 загнали в Massiv[0]
;------ ptr += 4; Переместить ptr на 8 байт. Старое значение забыть.
ldi r30,10 ; беру ptr
ldi r31,0
ld r16, Z
ld r17, Z+1
adiw r16, 8 ; !!!!! Вот где компилятор учёл двухбайтовость int
st Z,r16
st Z+1, r17 ; ptr уехал на Massiv[4].
;--- теперь надо сделать *ptr = 5 (так же как делали *ptr = 7)
Если надо - продолжу, но тяжко по частям разбивать.
Составить ответ | Вернуться на конференцию
Ответы