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

Содержимое удалено Содержимое добавлено
Обсуждение правки 193.201.100.154
Строка 47:
* не выводит ничего не экран.
[[Участник:Gribozavr|Gribozavr]] 18:13, 12 января 2011 (UTC)
 
== Некорректная работа программы "пачать файла наоборот"? ==
 
Здравствуйте. Я набил программу "печать файла наоборот" и полазил в ней дебагером.
В функции <code>read_str:</code> регистр <code>%ecx</code> используется для подсчёта прочитанных байт. Этот регистр используется библиотечными функциями <code>malloc()</code> и <code>fgets()</code>. После их вызова <code>%ecx</code> содержит всё что угодно но не количество прочитанных байт. Тем не менее далее его содержимое сравнивается с размером выделенного буфера.
 
Хотя, как ни странно, программа работает. :)
 
P.S. Если в <code>%ecx</code> помещается всякий мусор, и программа всё равно работает, этот регистр можно вообще не использвать?
 
[[Служебная:Contributions/91.103.66.177|91.103.66.177]] 05:44, 1 апреля 2011 (UTC)
Вернуться на страницу «Ассемблер в Linux для программистов C».