Почему этот код сгенерировал avr-gcc и как он работает?

Если серверная сторона наверху - все, о чем Вы заботитесь, то отправка простого ДОБИРАЕТСЯ со строкой запроса до ASHX, вероятно, было бы это. Это определенно предпочтительно для.ASPX, который собирается пройти жизненный цикл страницы, в котором Вы не требуетесь.

преимущество веб-метода ASMX состоит в том, что он основывался на стандарте, который могут назвать другие технологии легко (открытие поддержек). С некоторой документацией Ваш.ASHX будет столь же легко назвать, все же.

6
задан Peter Cordes 10 June 2016 в 20:26
поделиться

2 ответа

Команда SUBI может использоваться для добавления / вычитания любой 8-битной константы к / из 8-битного значения. Его стоимость такая же, как и у INC, т. Е. Размер инструкции и время выполнения. Таким образом, компилятор предпочитает SUBI, потому что он более общий. Соответствующей инструкции ADDI нет, вероятно, потому, что она была бы избыточной.

5
ответ дан 10 December 2019 в 02:51
поделиться

tl; dr компилятор был разработан для использования здесь более переносимого, эффективного и общего решения.

SUBI наборы инструкций C (перенос) и H (половинный перенос) флаги ЦП для использования с последующими инструкциями (нет ADDI в 8-битном AVR BTW, поэтому для немедленного добавления значения x мы вычитаем из него -x ), а INC - нет. Поскольку оба SUBI и INC имеют длину 2 байта и выполняются в течение 1 такта, вы ничего не теряете, используя SUBI - OTOH, если вы используете 8- счетчик битового размера, вы можете легко определить, не произошло ли его пролонгации (по BRCC / BRCS ), и если бы у вас был счетчик размером 16 или 32 бит , он позволяет увеличивать его очень простым способом - всего лишь с помощью INC , 0x00FF будет увеличен до 0x0000 , поэтому вам нужно будет проверить, младший байт - 0xFF перед INC ing. OTOH, с SUBI вы просто SUBI -1 младший байт, а затем ADC 0 для следующих байтов, гарантируя, что все потенциальные биты переноса были учтены .

Дополнительная литература:

https://lists.gnu.org/archive/html/avr-gcc-list/2008-11/msg00029.html

http: // avr-gcc-list. nongnu.narkive.com/SMMzdBkW/foo-subi-vs-inc[1244 impression

4
ответ дан 10 December 2019 в 02:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: