Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Тем не менее, можно с уверенностью заявить, что интерпретация содержимого регистров и памяти, как без-знаковых чисел, позволяет производить ряд операций (например, сдвиги или расширение значения) с ними проводить быстрее и порождает более компактный код, поэтому может быть настоятельно рекомендована при написании программ для МК, если иное (интерпретация как числа сщ знаком)не является обязательным условием.
Я неоднократно заявлял, что в настоящее время компилятор создает ассемблерный код ничуть не хуже программиста (правда, речь шла о ARM системе команд)
Зачем в 1ой функции cmp r3,#0?
Зачем во 2ой функции[...]
В эту конструкцию транслировалось выражение (while a--).
Поменяйте оптимизацию на O2.
.L8:
ldr r3, [sp, #4]
cmp r3, r2
bgt .L6
ldr r3, [sp, #4]
adds r3, r3, #1
str r3, [sp, #4]
b .L8
uint16_t byteu;
byteu = byteu << 4;
К вопросу о сдвигах, знаках и быстродействии МК