Ассемблер в Linux для программистов C: различия между версиями

Содержимое удалено Содержимое добавлено
Библиотечные вызовы не гарантирют неизменность регистра %ecx. Заменил на %edi.
Строка 2308:
pushl %edi
call malloc
/* Здесь необходим код заполнения нулями выделенной памяти
..................................
*/
movl %eax, %esi /* указатель на начало буфера */
decl %edi /* в конце должен быть нулевой байт,
Строка 2332 ⟶ 2335 :
pushl %esi /* указатель на буфер */
call realloc
/* Здесь необходим код заполнения нулями выделенной памяти
..................................
*/
addl $8, %esp /* убрать аргументы */
movl %eax, %esi /* результат в %eax — новый указатель