|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
програмные прерывания17.08.2019, 19:09. Показов 9431. Ответов 25
Метки нет (Все метки)
Как вызвать программное прерывание? Читаю книгу по системному программированию и в ней сейчас "прохожу тему" системных вызовов и там есть описание как они вызываются и обрабатываются ,так вот
Если программе нужно сделать системный вызов то она вызывает программное прерывание int со значением 0x80 ,далее вызывается обработчик прерываний ,для 0x80 обработчик системных вызовов и далее уже обрабатывается вызов. Каким образом вызывается(или создается) программное прерывание?
0
|
|
| 17.08.2019, 19:09 | |
|
Ответы с готовыми решениями:
25
Програмные требования програмные файлы, что делать? Как запустить програмные файлы |
|
Модератор
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,258
|
||||||
| 17.08.2019, 19:21 | ||||||
|
Не совсем понял, о чем Вы, но если имеется ввиду исключение,
то делайте примерно так
0
|
||||||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 17.08.2019, 19:26 [ТС] | |
|
zss, программное прерывание вызывается с помощью исключений?
Добавлено через 1 минуту Вот с stackoverflow - To execute a system call, user process will copy desired system call number to %eax and will execute 'int 0x80'. Что значит will execute int 0x80? Добавлено через 3 минуты zss, или вот с той книги On i386, for example, a user-space application exe‐ cutes a software interrupt instruction, int , with a value of 0x80 . This instruction causes a switch into kernel space, the protected realm of the kernel, where the kernel executes a software interrupt handler—and what is the handler for interrupt 0x80 ? None other than the system call handler! executes a software interrupt instruction, int , with a value of 0x80
0
|
|
|
Модератор
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,258
|
|
| 17.08.2019, 19:37 | |
|
Я не вдавался в подробности, как это делается на аппаратном уровне,
но, если это не то, то прошу прощения.
0
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 17.08.2019, 20:00 [ТС] | |
|
zss, как оказалось
INT is an assembly language instruction for x86 processors that generates a software interrupt. It takes the interrupt number formatted as a byte value. С С++ это не связанно.
0
|
|
|
Модератор
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,258
|
|
| 17.08.2019, 20:32 | |
|
Я так и подумал, и, скорее всего, механизм исключений как раз и реализует такое прерывание.
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 18.08.2019, 09:02 | |||
Сообщение было отмечено ReYalp как решение
РешениеУ процессора есть таблица обработчиков процессорных событий, они собственно прерываниями и называются. Задумывалась табличка под нужды процессора. Но хитрые разработчики Доисторической Операционной Системы (сокращенно DOS) подумали что и давайте мы в табличку и системные вызовы пристроим. Ну а че, там же 256 позиций, большую часть процессор не использует, чего добру пропадать. Для этого и была придумана команда int. Со времен Доисторической Операционной Системы для int придумали множество альтернатив, начиная с "подключу системную DLL, экспортирую из нее Си-интерфейс и пусть у него о всех этих sysenter башка болит". Однако, некоторые некрофилы, оказывается. продолжали использовать этот их int. Короче, закопайте обратно. Вам это с вероятностью 99% не потребуется.
2
|
|||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
||
| 18.08.2019, 11:57 [ТС] | ||
|
Renji,
насколько я понимаю такое решение уже не используется в современных системах? Что-то читал о SYSENTER/SYSEXIT,Вы слышали об этом? Добавлено через 2 минуты точнее насколько я понял Вы слышали об этом,чем оно отличается от int?
0
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 18.08.2019, 12:06 | ||
|
0
|
||
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
||
| 18.08.2019, 14:15 | ||
|
0
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 18.08.2019, 14:41 | ||
|
0
|
||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 18.08.2019, 14:47 [ТС] | |
|
Renji, Роберт Лав Системное программирование, там как пример работы в i386 int приведён, а Вы не подскажете как это работало?
Каким образом именно после запуска int 0x80 срабатывало переключение в режим ядра? Никогда не имел дело напрямую с этим, очень интересно.
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 18.08.2019, 15:06 | ||
|
0
|
||
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
||
| 18.08.2019, 15:33 | ||
|
причем и на уровне ОС (только что в linux 4.19 64 бит вывел строку в терминал через int 80)
1
|
||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 18.08.2019, 15:41 [ТС] | |
|
gng, меня интересует именно принцип работы,я не совсем понимаю как все происходит после запуска int 0x80 (к примеру),к примеру если взять текст с книги
On i386, for example, a user-space application exe‐ cutes a software interrupt instruction, int , with a value of 0x80 . This instruction causes a switch into kernel space, the protected realm of the kernel, where the kernel executes a software interrupt handler—and what is the handler for interrupt 0x80 ? None other than the system call handler! Запуск инструкции 0x80 влечет за собой переключение в пространство ядра,что это значит и как это происходит? Именно это переключение в пространство ядра,почему в него так легко можно переключится?
0
|
|
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
| 18.08.2019, 15:44 | |
|
0
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 18.08.2019, 15:47 [ТС] | |
|
gng, Тоесть процессор "видит" что была вызвана int и потом вызывает обработчик int? Это если вкратце?
0
|
|
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
| 18.08.2019, 15:51 | |
|
0
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 18.08.2019, 15:54 [ТС] | |
|
gng, мало знаком с ассемблером,в универе не приделил ему должного внимания и все что я знаю о move add это то что одна добавляет данные в регистр,другая убирает(вроде так,не уверен),а понятия даже не имею как они работают на уровне железа
Добавлено через 1 минуту и насколько я помню там не move а mov?
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 18.08.2019, 15:57 | ||
|
0
|
||
| 18.08.2019, 15:57 | |
|
Помогаю со студенческими работами здесь
20
прерывания Прерывания asm Таблица векторов прерывания Условие прерывания цикла Механизм прерывания ввода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вот уже год прошел, как у меня домен в reg.ru ...
Etyuhibosecyu 16.04.2026
И ничего они мне не сделали. Если отвязать карту, никакие услуги они не навяжут. Я бы с радостью продлил еще на два года, чтобы не мучиться с временным доменом и меня уже знали по red-star-soft. com,. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
|
Оптимизация кода на разграничение прав доступа к элементам формы
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.
Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
|