7mm огромное спасибо за код!! но я не понял ведь file descriptor он word(судя по http://www.lxhp.in-berlin.de/lhpsysc1.html#read в описании open int fd (16bit filedescriptor) )
7mm огромное спасибо за код!! но я не понял ведь file descriptor он word(судя по http://www.lxhp.in-berlin.de/lhpsysc1.html#read в описании open int fd (16bit filedescriptor) )и спасибо за errno
Sasha7b9 man'ы. БОльшая часть этих функций описана в man'ах. Правда там, описаны всё же не сами сисколлы, а libc'овые обёртки поверх них, предназначенные для C-программ. Но по большому счёту, эти обёртки отличаются от сисколлов лишь конвенцией вызова: способами передачи управления, передачи аргументов и возврата результатов. Конвенцию же вызова int 0x80 можно найти в книжках о ядре linux. Я так на память не скажу, но гугл знает. Если вам не найти, я могу спросить у гугла. И почитайте обязательно: man 2 syscalls
всё сам разобрался: неправильно принимал параметры из стека в read надо: Код (Text): xor ebx,ebx mov bx, [b]word[/b] [esp+4]
Посмотри номер функции в файле unistd_32.h. номер системнои функции в регистр eax , параметры в ebx, ecx, edx, esi, edi. в ebx 241h это типа WR_ONLY|O_CREATE|TRUNC, В ecx 0666q это права доступа, затем int 80h после вызова в eax содержится файловый дескриптор, осталось сделать только mov [fd],eax перед int 80h параметры ложаться с лева на право man 2 open
sergey02008 push path call open mov [fd], ax open: mov eax, 5 mov ecx, 0 mov edx, 0 mov ebx, [esp+4] ;ptr 2 path ret Так где здесь собственно вызов? Нет, я безнадёжен
Археологи атакуют. Но прежде чем атаковать, вы бы хотя тред прочитали-ли бы, а? Ну просто в качестве символического жеста уважения к окружающим.
Sasha7b9 Методы решения проблем и ошибки о которых вы говорите уже обсосаны со всех сторон в предыдущем обсуждении. Номера системных вызовов ни разу не были проблемой, проблему вызывали другие константы: возвращаемые сисколлами коды ошибок. А отсутствие int $0x80/sysenter было первым, на что обратили внимание автора топика. Так что всё, написанное вами -- не добавляет ничего нового к обсуждению, лишь захламляет форум. И по-моему у этого есть одно название -- неуважение к окружающим. Кроме того, есть ещё такое наблюдение: до ваших комментов было 25 ответов. Почему вы не читая этих ответов априори считаете что окружающие тупы настолько что не в состоянии решить проблему в 25 комментов? Ну и наконец последнее, почему вы, вместо того, чтобы подумать самостоятельно о том, что такое неуважение к окружающим, вместо того, чтобы прочитать предыдущее обсуждение самостоятельно и самостоятельно найти вопросы на интересующие вас ответы, почему вместо всего этого вы продолжаете провоцировать флуд и оффтоп, почему вы продолжаете провоцировать дальнейшее захламление форума?
r90 У меня один ответ на эту тЕТРАду. Вы дурак или как? В сотый раз повторю - придурок, где в вышеозначенном отрывке вызов функции чтения? 90 - это размер твоего шапочного мозоля, я у угадал?
Sasha7b9 Конечно дурак. Не дурак на этом форуме лишь один -- Вы. Причём настолько не дурак, что Вы точно знаете, когда надо переходить от разговора к оскорблениям. Вот я, скажем, не знаю, и из-за этого вынужден обходится без оскорблений. Как Вы считаете, сильно ли это ограничивает мои вербальные возможности? Не в сотый, но в третий раз, предлагаю Вам перечитать топик. Если Вы считаете что это "многабукф", то я могу изложить вкратце:: Sasha7b9 (да-да -- это цитата "тоже Вас") 7mm ragim ragim Последняя фраза была произнесена в ноябре прошлого года. В дальнейшем обсуждение развивалось в сторону обработки ошибок возвращаемых системными вызовами, и кончилось всё тем, что автор топика выяснил что он как-то не так работал со стеком:ragim После этого автор здесь не появлялся. Явно проблема была решена. И теперь, я -- дурак и придурок, -- не могу понять, о чём же мы теперь говорим? Не могли бы Вы, как не дурак и не придурок, объяснить мне идиоту, чем же мы здесь занимаемся? Вот объясните мне, зачем Sergey02008 начал рассказывать где можно найти номера системных вызовов, если эти номера были известны автору изначально. Объясните мне, зачем Phuntik -- тоже Вы -- пришёл сюда и начал ещё раз объяснять всем, что в первоначальном коде нет инструкции sysenter, если автор уже добавил эту инструкцию везде? Ну Серёжа -- ладно, я могу его понять, он впервые пользуется форумом, и ещё не привык смотреть на даты сообщений, он ещё не привык читать весь топик, прежде чем лезть со своими советами. Это нормально, все мы совершали такие ошибки когда-то. Но поведение не-дурака/не-придурка Phuntik'а загадочно и не поддаётся логическому анализу. Его поведение явно выше любой логики. И именно поэтому я обращаюсь к Вам за помощью: не могли бы Вы объяснить необъяснимое?