А что такое
0.1111+0.0001? Это представление целого знакового (типа <знак>.<число>) или вещественного с фиксированной запятой?
Если первое, то преобразовывать через real - это жесть.

Куча циклов каких-то. Дело даже не в неработоспособности кода. Просто сложение целых и переполнение при этом - это элементарщина для процессора. В asm-вставке надо писать, проверяя флаги, и без всяких циклов.
Это какое-то задание? Обязательно вводить строку в таком виде, или можно просто числом Integer?