|
|
|
rigan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 16.11.2010 Репутация: нет Всего: нет |
Добрый вечер!
Решил поизучать ассемблер в целях саморазвития. Появились вопросы по работе с системными вызовами и структурами. Например есть код на Си :
Подскажите как его можно реализовать с помощью системных вызовов? То есть, не через call stat, а именно через int $0x80. Это сообщение отредактировал(а) rigan - 16.11.2010, 20:47 |
|||
|
||||
airyashov |
|
|||
Опытный Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: нет Всего: 6 |
у gss есть ключ которым можно посмотреть asm листинг
-------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
rigan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 16.11.2010 Репутация: нет Всего: нет |
В этом листинге, через сall вызываются обвертки, а параметры передаются через стек. С этим я уже разобрался...
Мне хочется разобраться, как это работает через прерывание $int $0x80. Я не понимаю где и как распологать структуры... Как вообще работать со структурами из системных заголовочных файлов? Может мне кто-нибудь объяснить? |
|||
|
||||
500mhz |
|
|||
шайтан Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
mov edx,lun ;3 параметр, длинна сообщения которое выводим mov ecx,hw ;2 параметр, собственно адрес в памяти где лежит сообшение mov ebx,1 ;1 параметр, дескриптор куда пишем (в нашем случае stdout) mov eax,4 ;номер функции syscall write int 0x80 ;дергаем прерывание -------------------- |
|||
|
||||
rigan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 16.11.2010 Репутация: нет Всего: нет |
500mhz, спасибо. С этим Разобрался.
А как быть со структурами? Например структура utmp. Как c ней работать? Может инклюдить заголовочные файлы надо? |
|||
|
||||
500mhz |
|
|||
шайтан Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
rigan
инклуды от С/С++ не помогут ) если только как образец. Придется тебе ее переписать с учетом синтаксиса асма который используеш. И потом обычно при работе с структурами в одной из регистровых пар передаеться ее адрес. -------------------- |
|||
|
||||
ВладимирИванович |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 27.3.2017 Репутация: нет Всего: нет |
Здравствуйте. Так как моя проблема соответствует теме и чтобы не плодить однотипных тем, решил написать в этой теме.
Есть файл, содержащий текст. Большой файл, под гигабайт. В этом файле строки разной длины, а обработать надо строку полностью - поэтому я на fasm-е под win написал утилитку по такому (упрощённому) алгоритму: 1. открыть файл 2. запрос памяти ; CreateFileMapping 3. чтение файла в память ; MapViewOfFile 4. запрос памяти ; GetProcessHeap ; в памяти существующий файл и "плацдарм" для нового файла 5. перенос необходимого с существующего файла в "плацдарм" 6. создать новый файл 7. сохранить "плацдарм" в созданный файл Под wine отрабатывает так, как мне нужно. Но я пользуюсь линуксом и хочется переписать под линукс. И заморока тут на четвёртом пункте. Как бы это реализовать? |
|||
|
||||
ВладимирИванович |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 27.3.2017 Репутация: нет Всего: нет |
Здравствуйте. Немного продвинулся. Теперь у меня ступор на таком куске кода:
Последняя команда прерывает работу, не позволяя записывать в память, хотя флаги разрешают, почему так? |
|||
|
||||
Seenkao |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 20.12.2020 Репутация: 1 Всего: 1 |
Если у кого возникнут вопросы подобного рода.
Плейлист с видео по ассемблеру. - под видео так же выложены разные ссылки. Исходники кода - позже выложу на гитхаб. Системные вызовы для разных архитектур. |
|||
|
||||
Правила форума "Asm для Linux/Unix" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Linux/Unix | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |