Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Assembler

Страница: 1 |

 

  Вопрос: Блокровка шины ака Атомные операции ака Маскировка Добавлено: 06.11.08 06:18  

Автор вопроса:  Morpheus | Web-сайт: xury.zx6.ru
Я аж офигел когда не нашёл нормального ответа на гугле.. видел примеры атомных операций, но ничего в общем виде

Вопрос: как в ассемблере (NASM предпочтительно, под виндой и линухом) сделать атомную операцию из местолькоих строк типа:

-блокировать шину (начать маскировку прерываний)
-делать чё-нить
-разблокировать шину

Можно вообще так сделать? А можно в ВБ?

Спасибо!

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #1
Добавлено: 06.11.08 21:19
Маскировку прерываний можно организовать на асме, но не на васике) Смотря какая шина. Есть разные способы.
Для шины IDE нужно в порты 20h или 0A0h писать 20h для master и slave соответственно.
Ну либо инструкцией CLI запретить прерывания процессору. ХЗ. Тут конкретный случай важен

Ответить

Номер ответа: 2
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #2
Добавлено: 06.11.08 23:54
А если мне (не знаю зачем, например в многонитевой проге) надо выплонить след. комманды неделимой операцией:

mov eax, [x]
inc eax
mov [x], eax

то есть классически, считать переменную, увеличить на 1 и записать обратно.
Или , что ближе к истине, но чисто для познавательных целей, подвесить комп намертво..

Есть какой нить общий способ сделать это на x86 ? или всё от материнки зависит? мне надо маскировать в хардверные прерывания

Ответить

Номер ответа: 3
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #3
Добавлено: 07.11.08 13:24
Из нулевого кольца можно.

Ответить

Номер ответа: 4
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #4 Добавлено: 07.11.08 14:49
А как из JavaScript выполнить операцию в нулевом кольце?

Ответить

Номер ответа: 5
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #5
Добавлено: 07.11.08 19:34
))))

Ответить

Номер ответа: 6
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #6
Добавлено: 08.11.08 01:14
Executioner, а для етого есть АПИ?

Steel Brand, int SetCurrnetRing(int DW_RINGID, int DW_LPARAM, int DW_RPARAM, boolean QUICK_COMPUTERCRASH)
returns a non-zero value if the ring was set, halts the os if the QUICK_COMPUTERCRASH is set to 'true'.

Ответить

Номер ответа: 7
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #7
Добавлено: 08.11.08 02:48
Конечно! KiMascaradeSystemBus, KiAtomarOperation, KiBlockBus =)

Ответить

Номер ответа: 8
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #8
Добавлено: 09.11.08 05:43
нублин... :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам