Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по ассемблеру

  Все выпуски  

Уроки по ассемблеру


Информационный Канал Subscribe.Ru

Assembler. Уроки с сайта http://progs.biz

Рассылка №10

Assembler. Урок 18. Определяем текущий диск.

Полные версии уроков (с картинками) можно найти по адресам:
Урок 18. Определяем текущий диск.

М. Зандстра. Освой самостоятельно PHP 4 за 24 часа

Заказать на Озоне

Подробнее

Рассылки сайта progs.biz через subscribe.ru
Уроки по C++ Builder
Уроки по программированию на C++ Builder. Библиотека VCL, создание собственных компонентов, работа с базами данных, примеры, FAQ. Уроки разбиты на серии. Каждая серия независима от других.

Ассемблер. Урок 18. Определяем текущий диск

Сейчас мы напишем и разберем небольшую программу, которая будет выводить на экран букву диска, с которого она запущена.

Вот ее текст:

CSEG segment
org 100h
Begin:
    ;Определение диска.
    mov ah, 19h ;Получение текущего диска
    int 21h
    
    ;Прибавляем к номеру диска 41h.
    add al, 41h
    
    ;Вывод символа.
    mov dl, al 
    mov ah, 2h
    int 21h
    
    ;Завершение программы.
    mov ah, 04Ch
    int 21h
CSEG ends
end Begin

В нашей программе для получения текущего диска мы используем функцию 19h прерывания 21h. Эта функция возвращает в регистр al код текущего диска: 0 для диска A:, 1 - для B: и т. д. Для того, чтобы из этого номера получить букву диска, мы прибавляем число 41h:

   ...
    ;Прибавляем к номеру диска 41h.
    add al, 41h
    ...

После такого сложения 0 превратится в 41h (или в десятичном виде 65), 1 - в 42h и т. д. А 41h - это код символа A, 41h - B и т. д. Потом уже известным нам способом через функцию 2 прерывания 21h мы выводим букву для диска на экран.

Откомпилируйте программу. Если вы запустите полученный exe-файл с, например, диска C:, то программа выведет C, а если с дискеты, то A.

С этим уроков все.

Наверх

Copyright Алексеев Игорь, 2002-2003
Copyright сайт progs.biz, 2002-2003
Распространение материалов без разрешения владельцев авторских прав запрещено.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное