Just to make things clearer after BulldogLowell saying that my explanation was not clear, I will try one more time to express what I meant. I think most uncertainty is in regard to part 2. So I try to explain in more detail.
In Arduino Freaks post (here) They asked me to implement a dtostrf myself. I started doing it using the available resources fully. In current dtosrf most of the work is done by a function named "__ftoa_engine". This function is related to all the files in my list in the previous post. Unlike most libraries we so for Arduino, this function has its definition in a .h file and its implementation in a .S file. .S file is like a hybrid assembly + C/C++ file. So there are parts in C/C++ which are defines and things like that and then the implementation of the function is in assembly. The other 2 files also contain some stuff which are not you typical C++ file but I could live with that if everything would work out of the box(copy pasting code).
When I realized the files are being an issue, I thought of making one function with assembly code in it and trying to make it independent. So I made the file attached to my previous post having the whole ~500 lines of assembly using the "asm volatile( // code ); ". I read that this is the only way to use assembly in Arduino IDE. So I put my while code inside the code shown above (a lot of manual changes were needed to make the format compatible since this feature accept one line of assembly per each double quotation). After finishing the whole editing, I realized that the code does not compile because in assembly there are variable names which are the arguments passed to the function and these cannot be connected to the variables passed to the function. If you open my attached file you can see the following in the assembly code which do not get connected to the function's arguments: "val, buf, prec, maxdgs". Therefore I need someone to answer any of those 3 questions if I want to move forward with this approach.
I hope this clarified the process and the progress and everything else ![]()