Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
3 / 3 / 3
Регистрация: 02.03.2015
Сообщений: 40

Системные вызов через ассемблерную вставку

09.02.2019, 13:25. Показов 2326. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Ребята помогите вызов функции getpid() return : -14
почему -14 ?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <linux/kdev_t.h>
#include <sys/syscall.h>
 
int do_getpid(void)
{
    long __res;
    __asm__ volatile ( "int $0x80"
    : "=a" (__res)  
    : "a" (__NR_getpid));
    return (int) __res;
}
int main ()
{
    int n = do_getpid();
    printf (" getpid return : %d\n", n);
    return 0;
}
"=a" (__res) - это означает присвоить из регистра %eax в __res
"a" (__NR_getpid) - возвращает в %eax pid программы
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.02.2019, 13:25
Ответы с готовыми решениями:

Вычисление суммы ряда через ассемблерную вставку
Вычислить сумму ряда , используя ассемблерные вставки. Фото вставил внизу! программа должна быть на подобии: program sd; var...

Вычисление заданного выражения через ассемблерную вставку
Необходимо реализовать вычисление заданного выражения как ассемблерную вставку в программе на языке высшего уровня: 1) \sum...

Проверка числа на полный квадрат через ассемблерную вставку
Выяснить, является ли полным квадратом натуральное число n. Например, 4 -полный квадрат. Операции деления и извдечения корня нельзя...

3
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
09.02.2019, 14:01
Лучший ответ Сообщение было отмечено Strealht как решение

Решение

У линукса на x86_64 другой abi (int 0x80 там живо, но есть ряд ограничений). Либо собирайте и выполняйте под 32-бита, либо меняйте int 0x80 на syscall. А лучше, вообще не используйте ассемблер в случаях когда от него больше вреда чем пользы.
1
3 / 3 / 3
Регистрация: 02.03.2015
Сообщений: 40
09.02.2019, 14:25  [ТС]
Цитата Сообщение от prik Посмотреть сообщение
У линукса на x86_64 другой abi (int 0x80 там живо, но есть ряд ограничений). Либо собирайте и выполняйте под 32-бита, либо меняйте int 0x80 на syscall. А лучше, вообще не используйте ассемблер в случаях когда от него больше вреда чем пользы.
а где можно будет почитать об этом полее подробно
0
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
09.02.2019, 15:25
Лучший ответ Сообщение было отмечено Strealht как решение

Решение

Цитата Сообщение от Strealht Посмотреть сообщение
а где можно будет почитать об этом полее подробно
Даже не знаю, у меня в закладках только одна ссылка нашлась https://lwn.net/Articles/604515/ погуглите

Добавлено через 37 минут
UP: что-то сразу не подумал - на форуме есть ассемблерный раздел. Поищите/спросите там, думаю расскажут.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.02.2019, 15:25
Помогаю со студенческими работами здесь

Не могу запустить ассемблерную вставку на c++
Вставка находит скалярное произведение двух векторов, помогите запустить __asm { movaps xmm0, xmmword ptr // 0 | A.z |...

Как сделать ассемблерную вставку?
Нужно сложить два числа. Не могу понять ошибки вроде примеры смотрел вставки делаются именно так #include &lt;iostream&gt; #include...

Как сделать ассемблерную вставку на с++?
Вроде бы ничего нет сложного, код очень простой, и много где есть, но не идет код У меня c++ BorlandC 3.0, ассемблер MASM использую. Взял...

Как сделать ассемблерную вставку
Доброе время суток: подскажите хотя бы теоретично как сделать ассемблерную вставку в код паскаля? например есть программа : ...

Переписать используя ассемблерную вставку
Есть подпрограмма написанная на С++: void sion(char *&amp;str){ int len = 0; for(;str; len++); for(int j = len - 1; j &gt;= 0; j--){...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru