совсем плохо выглядит.shonty писал(а):Хотя если самому определить, то типа brbs (1<<bit_T) совсем неплохо выглядит
в этих командах (br..) указывается номер бита, а не число.
BOB51, SHOW - нет такой команды.
совсем плохо выглядит.shonty писал(а):Хотя если самому определить, то типа brbs (1<<bit_T) совсем неплохо выглядит
совсем плохо выглядит.shonty писал(а):Хотя если самому определить, то типа brbs (1<<bit_T) совсем неплохо выглядит
Код: Выделить всё
.equ bit_T =6
.equ bit_Z =0Код: Выделить всё
brbs (1<<bit_T), ...
brbs (1<<bit_Z), ...Код: Выделить всё
brbs 6, ...
brbs 0, ...Адресации относительно SP, например. Или неудачное решение в avr-gcc использовать в качестве zero то ли r0, то ли r1, в которые mul результат складывает. Но ладно, это уже придирки.BOB51 писал(а):Чего ещё не хватает то?
При том что обе компилятся в одну и ту же командуCOKPOWEHEU писал(а):Ну вот когда в чужом коде встречается brlo или brsh, это же понятнее, чем brbs 0 и brbc 0.
Все же 106, если скрипт не ошибся.Just_Fluffy писал(а):А так команд там меньше сотни.
О чем речь? Об адресации по байтам/словам во флеши что ли?BOB51 писал(а):Как и система прямого указания адреса
тем, что в случаеshonty писал(а):в таком случае чем отличается
131 командаCOKPOWEHEU писал(а):Все же 106, если скрипт не ошибся.
да, это я погорячилсяStarichok51 писал(а):тем, что в случае
brbs (1<<bit_T)
число равно 64, а не 6
я у себя в справочнике вместе со синонимами насчитал 116 строк.Just_Fluffy писал(а):131 команда
Код: Выделить всё
echo "" | awk '{for(i=0; i<256*256; i++)printf(".byte %i, %i\n", (i/256%256), (i%256))}' > a.S && avr-as a.S && avr-objdump a.out -D -m avr | tail -n +8 | sed 's/[^\t]*\t[^\t]*\t\([0-9a-z.]*\).*/\1/' | sort -u | tee cmds.txt | wc -l && rm a.out a.S
107
Все же не внутри процессора, а внутри ассемблера. В процессоре хранится уже как andi с инвертированной маской.CBR и ANDI с комплиментом числа для CBR.
хотя строго говоря, вторая пара не является синонимами, так как комплимент берется "внутри" процессора.
Код: Выделить всё
$ echo -e "andi r16, ~(1<<2)\n cbr r16, (1<<2)" > a.S && avr-as a.S && avr-objdump a.out -S | tail -n 2 && rm a.S a.out
0: 0b 7f andi r16, 0xFB ; 251
2: 0b 7f andi r16, 0xFB ; 251