Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

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

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



Оформил: 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 до тех пор, пока программа не будет остановлена, для использования в языках высокого уровня.


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

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 14:20:02/0.0028908252716064/0