Ассемблернаая вставка

JonHappy1
Offline
Зарегистрирован: 11.06.2018

есть массив

uint8_t d[] = "________";

нужно прочитать из регистра B   элемент массива d[7], и поменять местами нибблы, делаю это на ассемблере так
(http://microsin.net/programming/avr/avr-gcc-inline-assembler.html)

  asm volatile("in %0 , %1"  : "=r"(d[7]) : "I"(_SFR_IO_ADDR(PORTB)) );
  asm volatile("swap %0" : "=r" (d[7]) : "0" (d[7]) );

компиляция проходит , но нужного результата нет ,d[7] равен 0...

JonHappy1
Offline
Зарегистрирован: 11.06.2018

оказывается всё правильно работает , не правильно укзал регистр