Обсуждение:Ассемблер в Linux для программистов C: различия между версиями
Содержимое удалено Содержимое добавлено
Gribozavr (обсуждение | вклад) Обсуждение правки 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)
|