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

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

Описание работы

В данной работе необходимо отобразить на экране все слова пятой строки файла, каждое с новой строки.

Содержание

Введение…………………………………………………………………………………3
1. Создание файла с усечением существующего до нулевой длины………………..4
2.Открытие существующего файла……………………………………………………5
3. Создание нового файла с сохранением существующего………………………….6
4. Открытие и создание файла с расширенными возможностями…………………..7
5. Закрытие файла………………………………………………………………………8
Вывод……………………………………………………………………………………9
Список использованной литературы…………………………………………………10
Приложение А………………………………………………………………………….11
Приложение В………………………………………………………………………….14
Приложение С………………………………………………………………………….15

Работа содержит 1 файл

КР по мусу.doc

— 72.50 Кб (Скачать)

        ФЕДЕРАЛЬНОЕ АГЕНТСТВО  ПО ОБРАЗОВАНИЮ

        НЕВИННОМЫССКИЙ ТЕХНОЛОГИЧЕСКИЙ  ИНСТИТУТ (филиал)

        Государственного  образовательного учреждения высшего  профессионального
        образования

        «СЕВЕРО-КАВКАЗСКИЙ ГОСУДАРСТВЕННЫЙ  ТЕХНИЧЕСКИЙ  УНИВЕРСИТЕТ» 
 
 
 
 
 
 

        Контрольная работа

        По дисциплине: Микропроцессорные  устройства систем управления
 
 
 
 
 
 
 
 

 

Содержание

Введение…………………………………………………………………………………3

1. Создание файла  с усечением существующего до  нулевой длины………………..4

2.Открытие существующего  файла……………………………………………………5

3. Создание нового файла с сохранением существующего………………………….6

4. Открытие и создание файла с расширенными возможностями…………………..7

5. Закрытие файла………………………………………………………………………8

Вывод……………………………………………………………………………………9

Список использованной литературы…………………………………………………10

Приложение А………………………………………………………………………….11

Приложение В………………………………………………………………………….14

Приложение С………………………………………………………………………….15   

        Введение

        Язык  ассемблера не содержит средств для  работы с файлами. Если такая необходимость  возникает, то программа должна включать в себя фрагменты кода, в которых производится обращение к средствам операционной системы, осуществляющим взаимодействие с файловой системой.

        В основе файловой системы MS DOS лежит древовидная структура каталогов. Корень этой структуры представляет собой совокупность ограниченного числа дескрипторов, описывающих файлы и каталоги (подкаталоги) следующего уровня. Подкаталог представляет собой структуру особого типа, которая содержит дескрипторы файлов и подкаталогов очередного нижележащего уровня. В отличие от корневого каталога, количество дескрипторов в подкаталоге не ограничено и определяется только размером диска. Дескриптор представляет собой экземпляр структуры размером 32 байта. Поля этой структуры содержат различную информацию о файле: идентификатор файла и его характеристики – дату и время создания (модификация), номер начального кластера, длину файла и его атрибуты.

        В данной работе необходимо отобразить на экране все слова пятой строки файла, каждое с новой строки. 

 

        

        1. Создание файла с усечением существующего до нулевой длины

        Прежде  чем использовать файл в программе, его необходимо открыть с помощью  функции 3dh прерывания 21h. Если файл не существует, то перед открытием его нужно создать. Оба эти действия выполняются одной из следующих функций: 3ch, 5bh, 5ah, 6ch.

        Вход: AH = 3ch; CX = атрибуты файла (значения битов: 0 = 1 – только чтение; 1 = 1 – скрытый файл; 2 = 1 – системный файл; 3 = 0 – игнорируется; 4 = 0 – зарезервирован (каталог), должен быть равен 0; 5 – бит архивации; 6 = 0 – резерв; 7 = 1 – общий файл в системе novell NetWare; 8 – 15 = 0 – резерв); DS:DX – ASCIIZ-имя файла.

        Выход: CF = 0 – AX = дескриптор файла; CF = 1 – AX = код ошибки (3 – нет такого пути; 4 – нет свободного дескриптора файла; 5 – отказ в доступе).

 

        

  1. Открытие существующего файла.

        Когда файл создан, его можно открыть  функцией 3dh. При это необходимо указать режим доступа к файлу.

        Вход: AH = 3dh; AL = режим доступа и разделения – определяются состоянием битов: 2 – 0 – режимы доступа (000 – только чтение; 001 – только запись; 010 – чтение/запись); 3 – зарезервирован (0); 4 – 6 – режим совместного использования (000 – режим совместимости; 001 – запрет чтения и записи другими программами; 010 – блокировка записи другими программами; 011 – запрет чтения другими программами; 100 – разрешение полного доступа другими программами; 111 – сетевой FCB (доступен только в течение серверного вызова)); 7 – наследование (если установлен, то файл принадлежит только текущему процессу и не наследуется дочерними процессами); DS:DX – адрес ASCIIZ-цепочки с именем файла.

        Выход: CF = 0 – AX = дескриптор файла; CF = 1 – AX = код ошибки: 3 – нет такого пути; 4 – нет свободного дескриптора файла; 5 – доступ отказан; 12h – недействительный код доступа.

        Функция 3dh возвращает дескриптор файла, указатель в файле устанавливается на начало файла.

 

        

  1. Создание  нового файла с  сохранением существующего

        Еще одна функция создания файла 5bh, в отличие от функции 3ch, позволяет провести процесс открытия файла более мягко – без ущерба прежнему содержимому.

        Вход: AH = 5bh; CX = атрибуты файла; DS:DX – ASCIIZ-имя файла.

        Выход: CF = 0 – AX = дескриптор файла; CF = 1 – AX = код ошибки: 3 – нет такого пути; 4 – нет свободного дескриптора файла; 5 – отказ в доступе; 50h – файл существует.

        Если  указанный файл существует, то функция 5bh завершается с кодом ошибки 50h (CF = 1). Поэтому после вызова данной функции необходимо анализировать флаг CF (командой JC или JNC), если CF = 1, то для открытия файла необходимо дополнительно вызвать функцию 3dh.

 

        

  1. Открытие  и создание файла  с расширенными возможностями.

        Функция 6ch появилась в последних версиях MS DOS (DOS 4.0+). С ее появлением устраняется необходимость отслеживать существование создаваемого файла. Для корректной работы достаточно задать нужные значения в соответствующих регистрах. Анализ возможных значений показывает, что данная функция фактически заменяет существовавшие до этого функции создания и открытия файлов.

        Вход: AX = 6c00h; BL = флаги – режим открытия (значения битов: 7 – наследование; 4 – 6 – режим разделения; 3 – резерв (0); 0 – 2 – режим доступа); BH = флаги (значения битов: 6 = 0 – использовать стандартную для MS DOS буферизацию; 6 = 1 – отменить стандартную для MS DOS буферизацию; 5 = 0 – использовать обычный обработчик ошибок (int 24h), 5 = 1 – не использовать обычный обработчик ошибок (int 24h), для выяснения причины ошибки вызвать функцию 59h int 21h); CX = атрибуты создаваемого (и только) файла; DL = действия, если файл существует или не существует (значения битов: 0 – 3 – действие, если файл существует (0000 – вернуть ошибку; 0001 – открыть файл; 0010 – открыть файл без сохранения существующего); 4 – 7 – действие, если файл не существует (0000 – вернуть ошибку; 0001 – открыть файл; 0010 – создать и открыть файл)); DH = 00h – резерв; DS:SI – адрес строки с ASCIIZ-именем файла.

        Выход: CF = 0 – успешное выполнение функции: AX = дескриптор файла, CX = состояние (0 – файл открыт; 1 – файл создан и открыт; 2 – файл открыт без сохранения содержимого существующего файла); CF = 1 – AX = код ошибки.

 

  1. Закрытие файла

        В конце работы с файлом его нужно  закрыть. Но это действие не является обязательным, так как функция 4ch, которая завершает выполнение программы, в числе прочих действий выполняет и закрытие всех файлов.

        Вход: AH = 3eh; BX = дескриптор файла, полученный при его открытии.

        Выход: CF = 0 – AX = не определен; CF = 1 – AX = код ошибки: 6 – недопустимый дескриптор.

        Во  время закрытия файла выполняются  все незаконченные операции записи на диск в элементе каталога, соответствующего файлу, модифицируются различные поля, в том числе поля времени и даты устанавливаются в текущее время.

 

         Вывод

        В ходе выполнения работы были получены навыки работы с файлами в среде Assembler. Так же была разработана программа  работы с файлами, в ходе которой  было выполнено чтение с файла информации и в дальнейшем обработана. Полученный результат был выведен на экран в виде слов, написанных каждое с новой строки.

        Результат работы программы находится в  приложении С.

 

        

        Список  использованной литературы

        1. Евдокимов А.А. Микропроцессорные устройства систем управления [Текст]. – Ставрополь: Северо-Кавказский государственный технический университет, 2007. – 200 с. – ISBN 978-5-903399-02-4.

        2. Абель П. Ассемблер. Язык и  программирование для IBM PC [Текст]: пер. с анг. – К.: Век+, М.: ЭНТРОП, 2003. – 736 с. : ил. – ISBN 0-13-030655-х (англ.); ISBN 966-7140-30-х (укр.).

        3. Пильщиков В.Н. Программирование  на языке ассемблера IBM PC [Текст]. – М.: «Диалог-МИФИ», 2003. – 288 с. : ил. – ISBN 5-86404-051-7.

 

        

        Приложение  А

        Код программы

.model small 

.stack 100h

.data

handle  dw 0 

filename db 'file.txt',0

point_fname dd filename

sze  dw 0

dta  db 2048 dup (?)

wrd  db 100 dup(0) 

.code

start:  mov ax,@data     

mov ds,ax

mov es,ax 

xor ax,ax 
 

      mov al, 02h  

      lds dx, point_fname 

      mov ah, 3dh  

      int 21h   

mov handle,ax 
 

      mov dx,0  

      mov cx,0

      mov al,0

      mov ah,42h

      mov bx,handle  

      int 21h 

      mov ah,3fh  

      mov bx,handle

      mov cx,2048  

      lea dx,dta

      int 21h 

      mov ah,3eh  

      mov bx,handle

      int 21h 

      lea si,dta               

      mov cx,4                

find1:  lodsb      

      cmp al,0ah             

      jne find1              

      loop find1               

              lea di,wrd             

        find2:  lodsb                  

              cmp al,' '             

              je f2n                 

              cmp al,13              

              je view                

              stosb                  

              jmp find2              

        f2n: mov al,0dh             

              stosb                  

              mov al,0ah             

              stosb   

              jmp find2  

        view:   mov al,'$'  

              stosb                  

              lea dx,wrd             

              mov ah,9              

              int 21h    

              mov ah,4ch  

              int 21h   

        end start

        end    

        Приложение B

        Содержание файла file.txt

asd asd dsa dsa asd

dsa asd qweqd

qwefca asdadqw

qwf asda fqwgw sdg asd

slovo1 slovo2 slovo3 slovo4 slovo5

asd

 

        Приложение C

        Результат работы программы

Информация о работе Микропроцессорные устройства систем управления