Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2011, 15:50   #1
V@Programmer
На форуме меня нет
Пользователь
 
Аватар для V@Programmer
 
Регистрация: 03.08.2011
Сообщений: 56
По умолчанию Перехватывание прерываний и блокировка/разблокирование процессора в C

Как перехватить прерывания используя только C?
Как заблокировать/разблокировать процессор в C?
Да и ещё, в С нету ключевого слова asm, есть ей альтернатива?
Делаю бд, программы,
icq 640743615 дамы!
V@Programmer вне форума Ответить с цитированием
Старый 14.10.2011, 16:09   #2
haruhi
Форумчанин
 
Аватар для haruhi
 
Регистрация: 05.10.2011
Сообщений: 368
По умолчанию

Цитата:
Сообщение от V@Programmer Посмотреть сообщение
Как перехватить прерывания используя только C?
Как заблокировать/разблокировать процессор в C?
в обычных программах Windows и linux это невозможно! Это можно сделать только из драйвера
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
haruhi вне форума Ответить с цитированием
Старый 14.10.2011, 16:13   #3
V@Programmer
На форуме меня нет
Пользователь
 
Аватар для V@Programmer
 
Регистрация: 03.08.2011
Сообщений: 56
По умолчанию

А мне и не нужно из приложений windows/linux,
я ось пишу)
Делаю бд, программы,
icq 640743615 дамы!
V@Programmer вне форума Ответить с цитированием
Старый 14.10.2011, 16:36   #4
haruhi
Форумчанин
 
Аватар для haruhi
 
Регистрация: 05.10.2011
Сообщений: 368
По умолчанию

а если пишите ось, то зачем перехватывать прерывания? обработка прерываний основная задача ОС, нет смысла их перехватывать их надо обрабатывать.

по поводу обработчиков прерываний, как ни крути всё равно что-то придётся писать на ассемблере, как минимум обработчик, адрес которого прописан в дескрипторе IDT, а уже из него можно вызывать обработчик написанный на С

что вы понимаете под блокировкой процессора?
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии

Последний раз редактировалось haruhi; 14.10.2011 в 16:41.
haruhi вне форума Ответить с цитированием
Старый 14.10.2011, 16:47   #5
V@Programmer
На форуме меня нет
Пользователь
 
Аватар для V@Programmer
 
Регистрация: 03.08.2011
Сообщений: 56
По умолчанию

под блокировкой процессора я понимаю
Код:
               mov   [Word Ptr cs:int08],0
                             ret
а как я буду их обрабатывать если не буду перехватывать?(в смысле откуда я буду их брать, чтоб обрабатывать?)
Делаю бд, программы,
icq 640743615 дамы!
V@Programmer вне форума Ответить с цитированием
Старый 14.10.2011, 17:30   #6
V@Programmer
На форуме меня нет
Пользователь
 
Аватар для V@Programmer
 
Регистрация: 03.08.2011
Сообщений: 56
По умолчанию

пожалуйста, помогите!
Делаю бд, программы,
icq 640743615 дамы!
V@Programmer вне форума Ответить с цитированием
Старый 14.10.2011, 18:48   #7
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от V@Programmer Посмотреть сообщение
под блокировкой процессора я понимаю
Код:
               mov   [Word Ptr cs:int08],0
                             ret
может я уже отстал от технологий? что это такое?

Цитата:
Сообщение от V@Programmer Посмотреть сообщение
а как я буду их обрабатывать если не буду перехватывать?(в смысле откуда я буду их брать, чтоб обрабатывать?)
Учи матчасть! (я скатываюсь к боянным фразам, но это так) обработка прерываний происходит с помощью таблицы IDT.
rpy3uH вне форума Ответить с цитированием
Старый 15.10.2011, 09:04   #8
V@Programmer
На форуме меня нет
Пользователь
 
Аватар для V@Programmer
 
Регистрация: 03.08.2011
Сообщений: 56
По умолчанию

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
может я уже отстал от технологий? что это такое?
это не c это asm.
ну ладно, а как unix писали на чистом c? Эх......... перейду на c--
Делаю бд, программы,
icq 640743615 дамы!
V@Programmer вне форума Ответить с цитированием
Старый 15.10.2011, 09:16   #9
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от V@Programmer Посмотреть сообщение
а как unix писали на чистом c?
Unix не писали только на C. Самый низкий уровень - на ассемблере
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 15.10.2011, 09:19   #10
haruhi
Форумчанин
 
Аватар для haruhi
 
Регистрация: 05.10.2011
Сообщений: 368
По умолчанию

Цитата:
Сообщение от V@Programmer Посмотреть сообщение
это не c это asm.
ну ладно, а как unix писали на чистом c? Эх......... перейду на c--
rpy3uH же вам сказал что надо сначала разобраться как происходит работа с прерываниями в процессоре и только потом приступать к программированию. для начала надо хотя бы понять что такое таблица дескриптором прерываний, что такое деспритор (их целых три вида: шлюза, ловушки, задачи), что такое регистр IDTR и т.д. и только потом пытаться что-то писать
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии

Последний раз редактировалось haruhi; 15.10.2011 в 09:24.
haruhi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка прерываний fen1ksss Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 04.12.2010 23:39
Блокировка клавиши с использованием прерываний, C++ (gcc), Linux Enchance Общие вопросы C/C++ 3 16.11.2010 10:36
Разблокирование компьетера Искандер Помощь студентам 8 29.03.2009 16:08
Разблокирование файла wwww Общие вопросы Delphi 8 30.10.2007 10:21