sfd
Умножение двоичных чисел на Ассемблере для AVR
Умножение это довольно распространенная операция. Данную операцию можно выполнить как отдельной командой ассемблера, например MUL a,b Так и с помощью простых операций сложения и смещения. Конечно, использовать одну команду это удобно, но она не отражает саму механику процесса, не говоря уже о том, что не на всех микроконтроллерах, данная операция может вообще быть доступна. Также с помощью данного алгоритма можно умножать многобайтовые числа с помощью 8-битных операций. Разберем процесс умножения...
Динамическая память на ассемблере?!! Или даешь хардкод!!!
И так в продолжение статьи перехожу к коду. Что потребуется знать: Итак для начала потребуется в файле link.ld в области определения секций следующее: SECTIONS
{
.code : {
. = ALIGN(4);
*(.vectors); /* Указатели векторов прерываний */
*(.text); /* */
*(.asmcode); /* Текст программы */
*(.rodata); /* Константы */
} > FLASH
.bss : {
. = ALIGN(4);
PROVIDE(_BSS_START = .);
*(.bss); /* Переменные в SRAM */
PROVIDE(_BSS_END = ...