Пример: Глобальная сеть INTERNET
Я ищу:
На главную  |  Добавить в избранное  

Главная/

Программирование, базы данных. /

Разработка командного процессора, реализующего команды dir и mkdir на ассемблере

←предыдущая следующая→
1 2 3 4 5 6 7 

і

і Decimal і

АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

4. Кодирование алгоритма

Запишем разработанный нами алгоритм в мнемокоде на языке Ассемблер.

Далее более подробно опишем основные прерывания, которые будем ис-

пользовать.

Основным прерыванием, используемым в программе, является прерыва-

ния INT 21H (DOS Functions). Используемые функции этого прерывания

следующие:

Параметры Описание

Входные: AH 02H - Вывод на дисплей

DL символ для посылки на стандартное устройство

Выходные: нет

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Входные: AH 09H - Вывод строки на дисплей

DS:DX Адрес строки, заканчивающаяся знаком '$' (ASCII 24H)

Выходные: нет

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Входные: AH 1aH - Установка адреса DTA.

DS:DX адресс DTA области

Выходные: нет

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Входные: AH 19H - Получить информацию о текущем диске

Выходные: AL DOS current default drive number (0=A, 1=B, и т.д.)

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Входные: AH 36H - Получить информацию о свободном месте на диске

DL drive number (0=default, 1=A, и т.д.)

Выходные: AX ffffH если DL было invalid drive number

иначе количество секторов верно

BX количество свободных секторов (allocation units)

CX байт на сектор (обычно 512)

DX общее количество секторов на диске

Доп.информация: Выходная информация обычно подсчитывается как

общий размер диска и количество свободного места на диске:

Если AX = ffffH, то вы не правильно указали диск.

Иначе, свободного места в байтах = (AX * CX * BX)

общий размер в байтах = (AX * CX * DX)

Если сектора по 512 байт, более просто подсчитывать КБ:

свободного места в КБ = (AX * BX) / 2

общий размер в КБ = (AX * DX) / 2

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Входные: AH 3fH - Создать подкаталог

Функция описывалась нами ранее.

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Входные: AH 47H - Информация о текущем директории

DL drive number (0=default, 1=A, etc.)

DS:SI address of a local buffer to hold a pathname (64 bytes)

Выходные: AX передается ошибка (Таблица 1.1)

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Входные: AH 4fH - Hайти следующий совпадающий файл

DS:DX адресс данных с предыдущего 4eH поиска файла

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Входные: AH 4eH - Hвайти первый совпадающий файл

DS:DX строка пути к файлу ASCIIZ

CX атрибут файлы для поиска

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Кроме 21h прерывания мы использовали функцию 0eH прерывания INT 10H:

Данная функция обеспечивает вывод символа на монитор в режиме те-

летайпа. Для выполнения этой функции в AL помещают выводимый символ, в

BL цвет текста и номер строницы в BH. Hапример, символы: CR (0dH), LF

(0aH), звуковой сигнал (07H) и т.д. Данная функция автоматически кур-

сор, переводит символы на следующую строку, выполняет прокрутку экра-

на и сохраняет текущие атрибуты экрана.

Также мы использовали прерывание INT 20H для выхода в DOS. Оно не

имеет параметров.

Полный текст программы приведен в Приложении.

5. Тестирование и отладка программы

D:\ASM>kp.com <ВВОД>

KP v1.0, Copyright (c) 1997, БГУИР, Федосенко Д.В.

При запуске без параметров выводит подказку

Запуск с параметром должен иметь вид: kp диск:\каталог\маска [/D] [/M]

Где маска (при использовании /D) - любые символы и имена, включая * и ?

(при использовании /M) - название подкаталога.

/D - вывод директория по маске /M - создание подкаталога по маске

Например:kp C:\LANG\BP\*.* /D - вывод всех файлов и каталогов из C:\LANG\BP

kp C:\* /D - вывод только каталогов из корневого каталога диска C:

kp C:\UTIL /M - создание подкаталога UTIL в корневом диска С:

kp /D - вывод всех файлов и каталогов по текущему пути

Если ВЫ используете /M, то указывать название подкаталога обязательно!

D:\ASM>kp c:\cd\*.* /D <ВВОД>

Вывод содержимого каталога c:\cd\*.*

Метка диска DIMKA

. <КАТАЛОГ> 29/01/97 18:18:44

.. <КАТАЛОГ> 29/01/97 18:18:44

read_me.txt 1834 19/11/96 17:58:40

rcdsim.com 6604 13/09/95 03:00:00

loadcd.exe 0352 13/09/95 03:00:00

rcdpc.sys 4231 13/09/95 03:00:00

run_me.bat 40 06/02/97 13:54:38

307240К байт всего на данном диске

6160К байт свободно на диске

D:\ASM>kp c:\cd\util /M <ВВОД>

c:\cd\util

Подкаталог создан!

D:\ASM>kp c:\cd\*.* /D

Вывод содержимого каталога c:\cd\*.*

Метка диска DIMKA

. <КАТАЛОГ> 29/01/97 18:18:44

.. <КАТАЛОГ> 29/01/97 18:18:44

UTIL <КАТАЛОГ> 10/04/97 19:57:48

read_me.txt 1834 19/11/96 17:58:40

rcdsim.com 6604 13/09/95 03:00:00

loadcd.exe 0352 13/09/95 03:00:00

rcdpc.sys 4231 13/09/95 03:00:00

run_me.bat 40 06/02/97 13:54:38

307240К байт всего на данном диске

6152К байт свободно на диске

D:\ASM>kp * /D <ВВОД>

Вывод содержимого каталога *

Метка диска NPACD

. <КАТАЛОГ> 19/02/97 19:20:34

.. <КАТАЛОГ> 19/02/97 19:20:34

THELP6<КАТАЛОГ> 07/04/97 22:08:48

483552К байт всего на данном диске

8928К байт свободно на диске

В процессе тестирования были замечены проблемы с выводом информа-

ции при работе в системе WINDOWS95 (v4.0095). Автор надеется, что с

выходом системы WINDOWS98 проблем не будет.

Заключение

В процессе выполнения курсового проекта я более широко изучил фун-

кции прерываний DOS и BIOS. Hаучился применять их на практике, а так-

же ознакомился со структурой построения программы, реализующей фун-

кйии коммандного процессора. Hаучился пользоваться справочной и дру-

гой литературой.

Литература

1. Бек Л. Введение в системной программирование

2. Соловьев Г.H. Операционная система ЭВМ, Высшая школа, 1989г

3. Краковяк С. Основы организации и функционирования операционной

системы ЭВМ

4. Вишняков В.А., Петровский А.А. Системное обеспечение микроЭВМ

5. Hортон П. Персональный компьютер фирмы IBM и операционная система

MS-DOS

6. Финогенов К.Г. Самоучитель по системным функциям MS-DOS

7. Абель П. Язык

←предыдущая следующая→
1 2 3 4 5 6 7 


Copyright © 2005—2007 «RefStore.Ru»