?

Log in

 
 
27 Декабрь 2014 @ 06:55
asm (AVR)  
А как получить адрес РОН? как аналог в Си: a = &b
В доке на avrasm2, не нашел...
Метки: , ,
 
 
 
ex0_planet on Декабрь, 28, 2014 21:47 (UTC)
они в ассемблер встроены, да и то это immediate просто. то есть, ассемблер (или выходная часть кодогенератора) внутри себя имеет шаблоны инструкций вида
inc = "1100111xxxxx", и встретив inc r5 подставляет 000101 вместо xxxxx.
Denis Simsimsun on Декабрь, 30, 2014 16:44 (UTC)
да, я уже внутрь asmavr2.exe посмотрел, там реально есть такое:

ror.ll
1001001ddd000111
ror.l
1001001dd0100110
asr.ll
1001001ddd000110
asr.l
1001001dd0100101
lsr.ll
1001001ddd000101
lsr.l
1001001dd0100100
tst.ll


правда не на все команды
Juray Neskazujuray on Декабрь, 31, 2014 14:25 (UTC)
ну какое же immediate вот в таких конструкциях:

#define XL r26
#define XH r27
#define YL r28
#define YH r29
#define ZL r30
#define ZH r31
ex0_planet on Декабрь, 31, 2014 15:35 (UTC)
вот такая команда полностью валидна и работает:
mov 5, 6

более того, avr-libc этим вовсю пользуется.
Denis Simsimsun on Декабрь, 31, 2014 16:06 (UTC)
> mov 5, 6

не взлэтэл :(

error: Invalid register
Juray Neskazujuray on Январь, 1, 2015 09:17 (UTC)
и как он пользуется этим в приведенных дефайнах?
ex0_planet on Январь, 1, 2015 11:59 (UTC)
В приведенных — никак.