Зачем писать все тело функции на инлайновом ассемблере?
Создайте файл - itoa.S например
В нем добавьте в начале
Код:
|
.text
.global MY_ITOA
.type MY_ITOA, @function
MY_ITOA:
// и пишите на асме что угодно |
Далее добавьте этот файл в проект и не забудьте прототип функции описать в каком нибудь хидере или прямо в main.c
Но придется разобраться с регистрами. Документация в WinAVRdocavr-libc - avr-libc-user-manual.pdf
Не называйте функцию itoa! У нее должно быть три параметра - http://ru.wikipedia.org/wiki/Itoa_(Си).
Так что если назовете по стандартному, то и реализуйте с третьим параметром - выбором системы счисления - шестнадцатиричный, двоичный, десятичный...
ЗЫ. У меня добавление функции - 154 байта.
Исходники avr-libc -
http://savannah.nongnu.org/download/avr-libc/
Свою версию смотрите на заглавной странице вышеупомянутого avr-libc-user-manual.pdf
Надеюсь с форматом архива разберетесь.