Лекция по программированию

Автор работы: Пользователь скрыл имя, 11 Января 2011 в 19:34, лекция

Краткое описание

Язык ассемблера - это один из самых старых из всех существующих языков программирования. Когда-то это был один из основных языков программирования, без знания которого нельзя было заставить компьютер сделать что-либо полезное. Появились более удобные средства общения с компьютером. Но в отличии от других языков ассемблер не умирал, более того он это не смог сделать в принципе.

Содержимое работы - 1 файл

LECTS.DOC

— 893.00 Кб (Скачать файл)

               ASSEMBLE\EXAMPLES

     Нулевой байт (шест.00) идентифицирует  конец  составного  имени  пути доступаДля корневой директории возвращаемое значение состоит только  из одного байта - шест.00. Таким образом  можно  получить  текущее  имя  пути доступа для любого файла в подоглавлении. Пример демонстрирует использование данной функции.

CODESG  SEGMENT PARA 'Code'

        ASSUME  CS:CODESG,DS:CODESG,ES:CODESG

        ORG     100H

BEGIN:  JMP     SHORT MAIN

; -----------------------------------------------

PATHNAM DB      65 DUP(' ')     ;Имя текущего  пути доступа

; -----------------------------------------------

MAIN    PROC    NEAR

        MOV     AH,19H          ;Определить текущий диск

        INT     21H

        ADD     AL,41H          ;Заменить шест.номер

        MOV     DL,AL           ; на букву: 0=A, 1=B ...

        CAL     B10DISP         ;Выдать номер дисковода,

        MOV     DL,':'

        CAL     B10DISP         ; двоеточие,

        MOV     DL,'\'

        CAL     B10DISP         ; обратную косую

 

        MOV     AH,47H          ;Получить текущий каталог

        MOV     DL,00

        LEA     SI,PATHNAM

        INT     21H

A10LOOP:

        CMP     BYTE PTR [SI],0 ;Конец имени  пути доступа

        JE      A20             ; да - выйти

        MOV     AL,[SI]         ;Выдать на экран

        MOV     DL,AL           ; имя пути доступа

        CALL    B10DISP         ; побайтно

        INC     SI

        JMP     A10LOOP

A20:    RET                     ;Выход в DOS

MAIN    ENDP

 

B10DISP PROC    NEAR

        MOV     AH,02           ;в DL - адрес элемента

        INT     21H             ;Функция вывода на экран

        RET

B10DISP ENDP

 

CODESG  ENDS

        END     BEGIN

Поиск файлов по шаблону: шест.4E и шест.4F

     Данные функции аналогичны функциям шест. 11 и 12 базовой версии  DOS. Функция 4E используется для начала поиска в оглавлении, а функция 4F – для продолженияДля начала поиска в регистр DX  необходимо  загрузить  адрес ASCIIZ-строки, содержащей имя пути доступа и шаблон поискаШаблон поиска может включать в себя символы ? и *.  В регистре CX должно  быть  значение атрибута в любой комбинации битов (нормальный, оглавление, спрятанный  или системный).

               MOV  AH,4EH         ;Запрос на начало поиска

               MOV  CX,00H         ;Нормальный атрибут

               LEA  DX,PATHNM1     ;ASCIIZ-строка

               INT  21H            ;Вызов DOS

     Если операция находит файлудовлетворяющий  шаблону  поискато  в текущий буфер DTA в FCB заполняется следующей информацией:

    00 - резервировано DOS для последующего поиска

     21 - атрибут файла

     22 - время файла

     24 - дата файла

     26 - размер файла: младшее слово, затем старшее слово

     30 - имя и тип в виде 13-байтовой ASCIIZ строки, завершаемой шест.00.

     В случае ошибки в регистре AX возвращается код 02 (не найдено) или 18 (нет больше файлов). Для продолжения поиска файлов (после функции шест.4E) используется  функция  4F.  Между  этими  функциями  не  следует  нарушать содержимое DTA.

               MOV  AH,4FH         ;Запрос на продолжение поиска

               INT  21H            ;Вызов DOS

     Единственно возможный код в регистре AX - 18 (нет больше файлов). Обе рассмотренные функции не меняют состояние флага CF.

Переименование файла: шест.56

    Для переименования файла используется функция  шест.56.  При  этом  в регистр DX должен быть загружен  адрес  ASCIIZ-строкисодержащей  старые значения дисковода, пути доступа, имени и типа файла, а в  регистр  DI  (в действительности ES:DI) - адрес ASCIIZ-строки, содержащей  новые  значения дисковода, пути доступаимени  и  типа  файлаЕсли  указывается  номер дисковода, то он должен быть одинаков в обоих строкахПуть доступа может быть различным, поэтому данная операция может  не  только  переименовывать файл, но и переносить его в другое подоглавление.

Информация о работе Лекция по программированию