akl писал(а):Касательно студии, поддерживающей 32-битные значения, не получится.
В смысле? Только сейчас попробовал. Собирается без ошибок.
Студия 4.19, но в ней только собираю, а код пишу в стороннем редакторе.
Код: Выделить всё
.equ var = 999999999999999999999999999999999999999
ldi R16, low(var)
ldi R17, low(var>>8)
ldi R18, low(var>>16)
ldi R19, low(var>>24)
ldi R20, low(var>>32)
ldi R21, low(var>>40)
ldi R22, low(var>>48)
ldi R23, low(var>>56)
ldi R24, low(var>>64)
PS что в R24 не проверял, но думаю, что именно var>>64
Добавлено after 41 minute 51 second:
Хм.. да, действительно, больше 32 бит не получится.
Сейчас прогнал этот код, с выводом на дисплей.
Код: Выделить всё
.equ var = 77777777777777
ldi R16, low(var)
ldi R17, low(var>>8)
ldi R18, low(var>>16)
ldi R19, low(var>>24)
ldi R20, low(var>>32)
ldi R21, low(var>>40)
ldi R22, low(var>>48)
ldi R23, low(var>>56)
ldi R24, low(var>>64)
ldi R24, low(var>>72)
ldi YL,low (Result+9) ;
ldi YH,high (Result+9) ;
st Y, R16
st -Y, R17
st -Y, R18
st -Y, R19
st -Y, R20
st -Y, R21
st -Y, R22
st -Y, R23
st -Y, R24
st -Y, R25
Младшие 32 бита выводит правильно, а дальше или нули или мусор из FF, в зависимости от константы.
а должно быть 46 BD 0C D0 DC 71