Автор работы: Пользователь скрыл имя, 11 Января 2011 в 19:34, лекция
Язык ассемблера - это один из самых старых из всех существующих языков программирования. Когда-то это был один из основных языков программирования, без знания которого нельзя было заставить компьютер сделать что-либо полезное. Появились более удобные средства общения с компьютером. Но в отличии от других языков ассемблер не умирал, более того он это не смог сделать в принципе.
MOV AH,41H ;Запрос на удаление
LEA DX,PATHNAM ;ASCIIZ-строка
INT 21H ;Вызов DOS
В случае ошибки в регистре AX возвращается код 02 (файл не найден) или 05 (нет доступа).
Управление файловым указателем: шест.42
Система DOS имеет файловый указатель, который при открытии файла устанавливается в 0 и увеличивается на 1 при последовательных операциях записи или считывания. Для доступа к любым записям внутри файла можно менять файловый указатель с помощью функции шест.42, получая в результате прямой доступ к записям файла.
Для установки файлового указателя необходимо поместить в регистр BX файловый номер и в регистровую пару CX:DX требуемое смещение в байтах. Для смещений до 65.535 в регистре CX устанавливается 0, а в DX - смещение. В регистре AL должен быть установлен один из кодов, который определяет точку отсчета смещения:
0 - смещение от начала файла.
1 - смещение текущего значения файлового указателя, которое может быть в любом месте, включая начало файла.
2 - смещение от конца файла. Размер файла (и следовательно смещение до конца файла) можно определить, установив регистровую пару CX:DX в 0 и используя код 2 в регистре AL.
В следующем примере устанавливается файловый указатель на смещение 1024 байта от начала файла:
MOV AH,42H ;Установка указателя
MOV AL,00 ; от начала файла
LEA BX,HANDLE1 ;Установка файлового номера
MOV CX,00 ;
MOV DX,1024 ;Смещение 1024 байта
INT 21H ;Вызов DOS
JC error
Правильно выполненная операция сбрасывает флаг CF и возвращает новый указатель в регистровой паре DX:AX. Неправильная операция устанавливает флаг CF в 1 и возвращает в регистре AX код 01 (ошибка кода отсчета) или 06 (ошибка файлового номера).
Проверка или изменение атрибута: шест.43
Для проверки или изменения файлового атрибута в оглавлении диска используется функция шест.43H. При этом в регистре DX должен быть установлен адрес ASCIIZ строки. Для проверки атрибута регистр AL должен содержать 00. Для изменения атрибута регистр AL должен содержать 01, а регистр CX - новое значение атрибута. Следующий пример устанавливает нормальный атрибут:
MOV AH,43H ;Запрос на установку
MOV AL,01 ; нормального
MOV CX,00 ; атрибута
LEA DX,PATHNM2 ;ASCIIZ-строка
INT 21H ;Вызов DOS
В случае проверки функция возвращает текущий атрибут файла в регистре CX. В случае изменения функция устанавливает в соответствующем элементе оглавления атрибут из регистра CX. Неправильная операция возвращает в регистре AX коды ошибок 02, 03 или 05.
Получить текущее оглавление: шест.47
Определение текущего оглавления для любого дисковода осуществляется с помощью функции шест.47. При этом необходимо определить область памяти достаточно большую, чтобы содержать пути доступа максимальной длины и загрузить адрес этой области в регистр DX. Регистр DL должен содержать номер дисковода: 0 - текущий, 1 - A, 2 - B и т.д. В результате выполнения операция помещает в область памяти имя текущей директории (без номера дисковода), например, в следующем виде: