Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Stoneshard |#9| A Million Liches
Stoneshard |#8| Happy return
Stoneshard |#7| Oblivion
Stoneshard |#6| Rotten Willow Tavern

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Питер Нортон Весь текст 546.61 Kb

Программно-аппаратная организация компьютера IBM PC

Предыдущая страница Следующая страница
1 ... 16 17 18 19 20 21 22  23 24 25 26 27 28 29 ... 47
(управление). Если в любом тексте, связанном с персональными компьютерами,
Вам встретится сочетание "CONTROL-Z", то  имеется  в  виду  функция  конца
файла, или значение CHR$(26) .
     Кроме описанных трех универсальных кодов, возврата каретки,  перевода
строки и конца файла, имеются и другие форматирующие коды  ASCII,  которые
используются  с  различной  интенсивностью.  Символ  табуляции   (CHR$(9))
используется для замены нескольких пробелов,  следующих  один  за  другим.
Поскольку не существует общепринятого количества позиций  табуляции,  этот
символ используется не так широко, как можно было бы ожидать.
     Символ перевода страницы (CHR$(12)) обозначает переход к началу новой
страницы.  Большинство  устройств    печати    отрабатывает    этот    код
соответствующим образом и некоторые  программы  редактирования  используют
его для разделения текста на страницы. Использование этого  символа  также
далеко от универсальности.  Его  стоит  применять  только  для  управления
устройством печати.
     Программы редактирования и, особенно,  текстовые  процессоры  требуют
большего числа символов форматирования и они определяют  собственные  коды
для своих целей, таких как отметка границ параграфов, подчеркивания и тому
подобного. Поскольку универсальных кодов для таких функций не  существует,
их  включение  в  текстовой  файл  не  позволит  другим  программам    его
использовать.
     Прежде чем завершить рассмотрение текстовых файлов необходимо сделать
еще ряд замечаний,  касающихся  обычных  символов  текста.  Любая  система
кодирования  определяет  упорядоченную  последовательность  -  своего рода
эквивалент алфавитного порядка символов.  В коде ASCII все  обычные  знаки
пунктуации  предшествуют  буквенным  кодам.  Заглавные буквы располагаются
перед строчными.  Кроме того,  в отличие  от  кода  EBCDIC,  используемого
универсальными   компьютерами   фирмы  "ИБМ",  цифры  располагаются  перед
буквами.
     Коды заглавных букв отличаются от кодов строчных букв на  32  (на  32
меньше).  Этот  факт  можно  использовать  в  программах    преобразования
текстовых данных из верхнего регистра в нижний или наоборот.


     5.10. Форматы записей данных

     После текстовых файлов в коде ASCII наиболее распространены  файлы  с
фиксированной длиной записей. В таком файле логические единицы  информации
называются записями и размер этих записей одинаков во  всем  файле.  Файлы
такого формата создаются интерпретатором БЕЙСИКА в  качестве  произвольных
файлов, такой же формат имеют прямые файлы Паскаля  и  другие  нетекстовые
файлы. При выполнении каждой операции чтения или  записи  (обозначаемых  в
языке БЕЙСИК как INPUT# и WRITE#) пересылается одна запись.
     Если текстовые файлы включают метки, отмечающие концы строк  и  конец
файла,  то  в  файле  с  фиксированой  длиной  записей,  записи  ничем  не
отделяются друг от друга.  В  таких  файлах  хранятся  только  данные  без
каких-либо разделителей.
     Поскольку  записи  в  таком  файле  имеют  одинаковую  длину,   можно
использовать простейшие арифметические вычисления для  определения  места,
где заканчивается одна запись и начинается другая. Служебные программы ДОС
для чтения и записи информации в файл, описанные  в  главе  4,  используют
такой метод как при последовательном, так и при произвольном  обращении  к
файлу. Когда Ваши программы обращаются к файлам, ДОС выполняет все функции
поиска записей, так что Вашим программам не нужно  заботится  ни  о  каких
подробностях, связанных с поиском.
     Рассмотрим пример. Если длина записей файла 100 и у ДОС запрашивается
чтение записи с номером 24,  то ДОС вычисляет смещение в байтах от  начала
файла  умножением  24  х 100.  Разделив полученное значение 2400 на размер
сектора, 512 байт, получим частное 4 и остаток 352. Это значит, что запись
расположена  в  пятом  секторе файла (пропускаются 4 сектора) со смещением
352 байта.
     (Такой способ подсчета предполагает, что нумерация записей начинается
с нуля. Если номер первой записи единица,  то  необходимо  соответствующим
образом изменить формулу, хотя сам метод остается неизменным).
     В файлах с фиксированной длиной записи ДОС не  приходится  заниматься
выравниванием записей - они  располагаются  одна  за  другой.  Если  длина
записи не укладывается точно в 512-байтовый размер сектора,  то  некоторые
записи могут размещаться в  нескольких  секторах,  что  несколько  снижает
эффективность операций чтения и записи.
     В нашем примере  со  100-байтными  записями,  очередная,  25  запись,
частично размещается в 5-ом, а частично - в 6-ом секторе. Чтобы записать в
файл эту запись, необходимо сначала считать, а затем записать  обратно  на
диск два сектора.
     Если Вы будете выбирать длину записи так, чтобы она была кратна  512,
то скорость чтения и записи несколько повысится.  ДОС,  однако,  позволяет
работать с записями разной длины и, если не  считать  некоторого  снижения
эффективности при  чтении/записи  записей,  располагающихся  в  нескольких
секторах, Вам не нужно заботиться о размере записи.
     Как Вы, вероятно, догадались, существует  множество  других  форматов
файлов, помимо текстовых файлов и файлов с фиксированной длиной записи. Мы
так подробно остановились на этих двух  форматах  в  связи  с  их  широким
распространением. Другие форматы хранения данных обычно имеют  структурные
требования, усложняющие процесс их чтения и записи, что может  потребовать
использования  специальных  программ  для  работы  с  ними.   Существенное
достоинство этих двух  форматов  заключается  в  их  гибкости  -  в  самых
различных ситуациях - так что они  могут  использоваться  в  очень  многих
приложениях. Поскольку они поддерживаются очень многими программами, в том
числе различными языковыми  процессорами  и  операционными  системами,  их
очень удобно использовать. На практике получается, что в связи с удобством
работы  с  текстовым  форматом  и  широкой  поддержкой   его    различными
программами редактирования и языками  программирования,  можно  обнаружить
случаи приспосабливания форматов данных программ к  текстовому  формату  в
коде ASCII.


     5.11. Форматы программных файлов.

     Существует  два  формата  файлов  для  хранения  программ.  Для   них
зарезервированы  два  расширения  имен:  ".COM"  и  ".EXE".    Подробности
организации программных файлов  потребуют  полного  изложения  организации
ДОС, так что мы не будем сейчас  их  описывать,  отметив  только  наиболее
важные моменты. (Файлы программ БЕЙСИКА с расширением ".BAS" строго говоря
не являются программными файлами - это файлы данных, которые считываются и
используются интерпретатором БЕЙСИКА.)
     Программные файлы типа COM с расширением имени  файла  ".COM"  -  это
непосредственно загружаемые программы. В этих файлах хранится точный образ
задач в том виде, в котором они находятся в памяти. Для них  не  требуется
практически никакой подготовки  к  запуску  после  их  загрузки  в  память
средствами ДОС. Если Вы будете  просматривать  файл  типа  COM,  например,
программой  DiskLook,  Вы  увидите  команды  машинного  языка  и   данные,
образующие программу, и ничего больше. Когда ДОС подготавливает  программу
из  файла  типа  COM   к    выполнению,    она    формирует    специальный
сегмент-приставку, необходимый для  всех  программ,  загружает  программу,
устанавливает регистры сегментов, присваивая им  стандартные  значения,  и
передает управление программе.
     Программные файлы типа EXE с расширением имени файла ".EXE" несколько
отличаются от файлов типа COM. Чтобы загрузить их для выполнения требуется
определенная подготовка. Наиболее важная часть такой подготовки называется
перемещением.
     Программа может содержать адреса, значения которых должны меняться  в
зависимости от того,  в  каком  месте  памяти  находится  программа.  Если
программе это не требуется, то она называется само-перемещаемой. Программы
типа COM должны быть само-перемещаемыми, а перемещение программ  типа  EXE
должно выполняться специальной программой ДОС - загрузчиком.
     Программы типа EXE начинаются специальной двухбайтовой меткой,  4D5A,
которая используется для различения программ разных типов. За этой  меткой
следует  определенная  управляющая   информация,    включающая    таблицу,
указывающую какое перемещение  необходимо.  Далее  размещается  собственно
программа.
     Помимо перемещения, во время загрузки для  программ  типа  EXE  может
быть определен сегмент стека. Программы типа EXE могут определять куда они
должны загружаться - в верхнюю или в нижнюю часть доступной памяти.
     В  связи  с  простотой  формата  COM,  можно  создавать  относительно
короткие и простые файлы типа COM в машинных кодах непосредственно, либо с
помощью программ для модификации содержимого файлов на дискетах, таких как
DEBUG или SecMod, либо путем  написания  короткой  программы  на  БЕЙСИКЕ,
которая будет записывать байты программы прямо в  файл  типа  COM.  Такого
рода программ создано уже очень много.
     Формат типа COM проще, компактнее и быстрее загружается в память. Для
программ, которым не нужны  специальные  услуги,  обеспечиваемые  форматом
типа EXE, предпочтительнее использовать формат типа COM.


     Приложение  5.1.  Текст  программы  анализа  структуры    справочника
(Паскаль).

     const

       directory_sectors_single_sided=4;
       directory_sectors_double_sided=7;

       directory_entries_single_sided=64; {4*16}
       directory_entries_double_sided=112; {7*16}

       hidden_attribute              =wrd(2);
       system_attribute              =wrd(4);

       {========================================================}

     type

       directory_entry_type=

         record

           filename                 : string(8);
           extension                : string(3);
           attribute                : byte; {hidden=2; system=4}
           reserved                 : array[1..10] of byte;
           creation_time            : word; {hour*2048+minute*32+
                                             secs}
           creation_date            : word; {(year-1980)*512+
                                             month*32+day}
           starting_cluster_number  : word;
           file_size                : array[1..2] of word;

         end;

     {==========================================================}

     complete_directory_type=array[1..112] of directory_entry_type;



     Приложение 5.2. Текст программы анализа структуры таблицы  размещения
файлов (Паскаль).

     const

       minimum_cluster                 =    2;
       maximum_cluster_single_sided    =  314;
       maximum_cluster_double_sided    =  316;

       usual_fat_end_of_file           = 4095;
       minimum_fat_end_of_file         = 4088;

       bad_cluster_fat                 = 4087;

       single_sided_indicator_byte     =  254;

       double_sided_indicator_byte     =  255;

     {==========================================================}

     type

       fat_sector_type=array[0..511] of byte;

       fat_sector_structured_type=
         record
           scrambled_fat_pair: array[0..158]
     of
             record
               scrambled_byte_1 : byte;
               scrambled_byte_2 : byte;
               scrambled_byte_3 : byte;
             end;
           unused_bytes_of_sector : array[1..35] of byte;
         end;




                       Глава 6. ВЫБОРКА ИЗ ПЗУ


     Программы, размещаемые в пассивном  запоминающем  устройстве  (ПЗУ  )
компьютера  IBM/PC,  определяют   эффективность    работы    персонального
компьютера в целом. В данной  главе  мы  излагаем  самые  общие  сведения,
касающиеся  ПЗУ.  Мы  рассмотрим  назначение  ПЗУ,  специфику  анализа   и
декодирования  (реконструкции)  хранящейся  там  информации  и,   наконец,
Предыдущая страница Следующая страница
1 ... 16 17 18 19 20 21 22  23 24 25 26 27 28 29 ... 47
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама