Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как подвесить WIN или DOS

Delphi , ОС и Железо , Windows

Как подвесить WIN или DOS

Оформил: DeeCo

Автор: XZ

Этот код можно использовать в языках высокого уровня (Delphi, C, ...), для этого воспользуйтесь правилами. Исходники примера можно взять здесь: Dos (Pascal 7.0), Win (Delphi 5).

WIN:

cli ;отключение внешних прерываний 
@A: ;метка
jmp @A ;зацикливание

DOS:

cli ;отключение внешних прерываний 
hlt ;выход из программы

Here's the translation of the content into Russian:

Пример кода на языке ассемблера для платформ DOS и WIN

В этом примере кода на языке ассемблера показано, как использовать инструкции cli и jmp для создания бесконечного цикла в программе.

WIN (CLI-язык ассемблера)

cli  ; отключить внешние прерывания
@A:  ; метка
jmp @A  ; возврат к инструкции @A

В WIN инстркция cli используется для отключения внешних прерываний, что предотвращает программу от прерывания другими процессами или аппаратными событиями. Метка @A: обозначает место в памяти, к которому будет выполнен переход с помощью инструкции jmp.

DOS (CLI-язык ассемблера)

cli  ; отключить внешние прерывания
hlt  ; остановить процессор

В DOS инстркция cli также используется для отключения внешних прерываний. Инструкция hlt останавливает процессор, эффективно прекращая программу.

Описание

Код предназначен для выполнения в среде, где возможна программа на языке ассемблера, например, в компиляторе Delphi или C. Примеры кода для Pascal 7.0 (DOS) и Delphi 5 (WIN).

В обеих платформах WIN и DOS инстркция cli используется для отключения внешних прерываний, что может вызвать проблемы, если не будет правильно обработано. В WIN программа будет выполняться бесконечно, используя инструкцию jmp, эффективно блокируя систему. В DOS программа будет остановлена процессором сразу.

Альтернативное решение

Если вы ищете более современный способ достичь аналогичного результата, можно использовать более высокоуровневые языки программирования, такие как C или Delphi, которые предоставляют более удобные способы управления прерываниями и ресурсами системы.

Например, в C вы можете использовать функцию interrupt из заголовочного файла <signal.h> для отключения внешних прерываний:

#include <signal.h>

int main() {
    signal(SIGINT, SIG_IGN);  // игнорировать сигналы прерывания
     // ...
}

В Delphi можно использовать компонент TInterruptManager для управления прерываниями и отключения их, когда это необходимо.

Важно отметить, что программа на языке ассемблера является низкоуровневой и сложной, и в большинстве случаев более эффективно использовать более высокоуровневые языки программирования.

В статье описывается пример кода, который позволяет подвесить выполнение Windows или DOS до тех пор, пока программа не будет остановлена, для использования в языках высокого уровня.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Windows ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-10 07:13:18
2024-05-19 12:20:55/0.010277986526489/2