Вход и выход из спящего режима - Assembler

Узнай цену своей работы

Формулировка задачи:

Доброе время суток. необходимо написать программу для входа и выхода из спящего режима на компьютере. Необходимо, чтобы в приложении можно было контролировать спящий режим. Что может помочь мне? Есть ли пример или листинг подобной программы. Заранее спасибо!

Решение задачи: «Вход и выход из спящего режима»

textual
Листинг программы
        org 100h
        mov ax, 5301h
        sub bx, bx
        int 15h     ; APM BIOS Services - Real mode interface connect
                    ; BX = Power device ID (0000h = APM BIOS)
        jc  short gtfo
        mov ax, 530Eh
        sub bx, bx
        mov cx, 102h
        int 15h     ; APM BIOS Services - APM driver version
        jc  short gtfo
        mov ax, 5307h
        mov bx, 1
        mov cx, 3           ; Power state = OFF
        int 15h     ; APM BIOS Services - Set power state
 
gtfo:               
        int 20h     ; DOS - PROGRAM TERMINATION

Объяснение кода листинга программы

  Код на языке Assembler выполняет следующие действия:

  1. Подключается к интерфейсу реального режима APM BIOS Services с помощью функции int 15h.
  2. Вызывает функцию APM BIOS Services для получения номера версии драйвера APM с помощью функции int 15h.
  3. Если номер версии драйвера не равен нулю, код переходит к выполнению других действий.
  4. Перемещает значение 1 в регистр bx.
  5. Перемещает значение 3 в регистр cx.
  6. Вызывает функцию APM BIOS Services для установки состояния питания в режим выключения с помощью функции int 15h.
  7. Если произошло исключение, код переходит к выполнению других действий.
  8. Вызывает функцию DOS для завершения программы с помощью функции int 20h. Переменные:
    • ax — 5301h: Регистр ax содержит номер услуги, которую необходимо выполнить в APM BIOS Services.
    • bx — bx: Регистр bx используется в качестве второго параметра при вызове функции int 15h для подключения к APM BIOS Services.
    • cx — 102h: Регистр cx используется в качестве параметра при вызове функции int 15h для получения номера версии драйвера APM.
    • cx — 3: Регистр cx используется в качестве параметра при вызове функции int 15h для установки состояния питания в режим выключения. Номера регистров и указанные в скобках значения являются представлениями, а не реальными именами регистров.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы