![]() |
|
|
![]()
|
|
| rthsobakas |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 562 Регистрация: 20.9.2007 Репутация: нет Всего: -1 |
Читал в инете и в справочниках об этой команде и везде написано что она останавливает процессор. Зачем это нужно? приведите,пжл, пару примеров с её использованием(маленьких тока)...
|
|||
|
||||
| PPS05 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 262 Регистрация: 6.11.2005 Где: Беларусь, Минск Репутация: нет Всего: 7 |
Имею мысль, что можно использовать при ожидании прерывания. А вот нужно ли?...
-------------------- Ушел с форума и не вернулся. |
|||
|
||||
| rthsobakas |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 562 Регистрация: 20.9.2007 Репутация: нет Всего: -1 |
мне тоже не совсем понятно зачем она нужна... Примеров не могу найти с ней, так бы может че понял |
|||
|
||||
| PPS05 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 262 Регистрация: 6.11.2005 Где: Беларусь, Минск Репутация: нет Всего: 7 |
Полазил по ссылкам в Гугле. Получается, что т.к. процессор приостанавливается можно его охладить. Вывести из hlt можно прерыванию, разрешенному до hlt.
-------------------- Ушел с форума и не вернулся. |
|||
|
||||
| rthsobakas |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 562 Регистрация: 20.9.2007 Репутация: нет Всего: -1 |
ну к примеру код
но при выполнении exe выдает ошибку. |
|||
|
||||
| PPS05 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 262 Регистрация: 6.11.2005 Где: Беларусь, Минск Репутация: нет Всего: 7 |
А под какую систему запускается? В NT линейке hlt - привелигированная команда, недопустима в ring-3. -------------------- Ушел с форума и не вернулся. |
|||
|
||||
| rthsobakas |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 562 Регистрация: 20.9.2007 Репутация: нет Всего: -1 |
на winXP запускаю
чето ниче не понял. Объясни поподробней , если не сложно |
|||
|
||||
| PPS05 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 262 Регистрация: 6.11.2005 Где: Беларусь, Минск Репутация: нет Всего: 7 |
В двух словах особо не объяснишь... На системах Windows 2000, 2003, NT, XP команда hlt входит в состав привелигированных, это значит, что прикладные программы не могут использоать hlt. Ей может пользоваться лишь ядро системы, которое имеет большие привилегия на выполнение кода.
-------------------- Ушел с форума и не вернулся. |
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
Семантика команды: остановка микропроцессора до прерывания или перезагрузки.
Применение: В результате выполнения команды микропроцессор переходит в состояние остановки. Из этого состояния его можно вывести сигналами на входах RESET, NMI, INTR. Если для возобновления работы микропроцессора используется прерывание, то сохраненное значение пары CS:EIP/IP указывает на команду, следующую за HLT. Для иллюстрации применения данной команды рассмотрим способ переключения микропроцессора из защищенного в реальный режим и его возврата обратно в реальный режим. В микропроцессоре не предусмотрено специальных средств для подобного переключения. Сброс микропроцессора можно инициировать, если вывести байт со значением 0FEh в порт клавиатуры 64h. После этого микропроцессор переходит в реальный режим и управление получает программа BIOS, которая анализирует байт отключения в CMOS-памяти по адресу 0Fh. Если значения этого байта равно 05h — сброс микропроцессора инициирует инициализацию программируемого контроллера прерываний на значение базового вектора 08h. Далее управление передается по адресу, который находится в ячейке области данных BIOS 0040:0067h; Если значения этого байта равно 0Ah — сброс микропроцессора инициирует непосредственно передачу управления по адресу в ячейке области данных BIOS 0040:0067h (то есть без перепрограммирования контроллера прерываний). Если Вы не используете прерываний, то достаточно установить байт 0Fh в CMOS-памяти в 0Ah. Предварительно Вы должны инициализировать ячейку области данных BIOS 0040:0067h значением адреса, по которому необходимо передать управление после сброса. Для программирования CMOS-памяти используются номера портов 070h и 071h. Вначале в порт 070h заносится нужный номер ячейки CMOS-памяти, а затем в порт 071h — новое значение этой ячейки. ;работаем в реальном режиме, готовимся к переходу в защищенный режим: PUSH ES PUSH 40h POP ES MOV WORD PTR ES:[67h],OFFSET RET_REAL;RET_REAL — метка в программе, с которой должно ;начаться выполнение программы после сброса MOV ES:[69h],CS MOV AL,0Fh ;будем обращаться к ячейке 0Fh в CMOS OUT 70h,AL NOP ;чуть задержимся, чтобы аппаратура отработала сброс без перепрограммирования контроллера MOV AL,0Ah OUT 71h,AL ;переходим в защищенный режим установкой бита 0 CR0=1 . . .;работаем в защищенном режиме ;готовимся перейти обратно в реальный режим MOV AL,01FCh OUT 64h,AL ;сброс микропроцессора HLT ;остановка до физического окончания процесса сброса RET_REAL: ... ;метка, на которую будет передано управление после сброса Разработчики из фирмы Intel рекомендуют использовать команду HLT только тогда, кода возникает катастрофическая ошибка оборудования и дальнейшая работа бессмысленна. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
применений больше -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| sgi1981 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 16.3.2006 Репутация: 7 Всего: 10 |
В остановленном состоянии микропроцессор потребляет мощность несколько ватт, а в исполняемом состоянии мощность несколько десятков ватт, вот поэтому есть смысл применять HLT.
-------------------- Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства. |
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
MAKCim
Я цитировал Юрова |
|||
|
||||
| AndNot |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
Извиняюсь за поднятие старой темы, просто вспомнился старый досовский трюк:
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
AndNot,
стремный способ особенно если учесть, что кроме таймера есть еще куча всяких устройств -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| AndNot |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
MAKCim,
А вот старый способ самой короткой "вешалки":
|
||||
|
|||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |