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

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


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)

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


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

Ассемблер и программирование для IBM PC

Предыдущая страница Следующая страница
1  2 3 4 5 6 7 8 9 10 11 12 13 14 ... 85
назначения Intel 8080. Данный успех побудил другие  фирмы  к  производству
этих или аналогичных процессоров.
     В 1978 году фирма Intel  выпустила  процессор  третьего  поколения  -
Intel 8086, который обеспечивал некоторую совместимость с 8080  и  являлся
значительным продвижением вперед в данной  области.  Для  поддержки  более
простых устройств и обеспечения совместимости с устройствами  ввода/вывода
того времени Intel разработал разновидность процессора  8086  -  процессор
8088, который в 1981 году  был  выбран  фирмой  iВМ  для  ее  персональных
компьютеров.
     Более развитой версией процессора 8088 является  процесcор  80188,  а
для процессора 8086 - процессоры 80186, 80286 и 80386, которые  обеспечили
дополнительные возможности и повыcили мощность вычислений.  Микропроцессор
80286, установленный в компьютерах IBM AT появился в 1984  году.  Все  эти
процессоры имеют отношение к развитой архитектуре процессоров фирмы  Intel
и обозначаются как iAPX 86, iAPX 88, iAPX 86, iAPX286 и iAPX386, где APX -
Intel Advanced Processor Architecture.
     Распространение  микрокомпьютеров  послужило   причиной    пеpесмотра
отношения  к  языку  ассемблера  по  двум  основным  причинам.  Во-первых,
программы, написанные на  языке  ассемблера,  требуют  значительно  меньше
памяти  и  времени  выполнения.  Во-вторых,  знание  языка  ассемблера   и
результирующего машинного кода дает понимание архитектуры машины, что вряд
ли обеспечивается при работе на языке высокого  уровня.  Хотя  большинство
специалистов в области программного обеспечения ведут разработки на языках
высокого уровня,  таких  как  Паскаль  или  С,  что  проще  при  написании
программ, наиболее мощное и эффективное программное обеспечение  полностью
или частично написано на языке ассемблера.
     Языки высокого уровня  были  разработаны  для  того,  чтобы  избежать
специальной  технической  особенности   конкретных    компьютеров.    Язык
ассемблера, в свою очередь, разработан для конкретной специфики компьютера
или точнее  для  специфики  процессора.  Следовательно,  для  того,  чтобы
написать программу на языке ассемблера для конкретного компьютера, следует
знать его архитектуру и данная книга  содержит  весь  необходимый  базовый
материал.  Для работы  кроме  этого  материала  и  cоответствующих  знаний
необходимы следующее:

          - Доступ персональному компьютеру IBM PC или совместимому с  ним
     c оперативной памятью - минимум 64К и одним дисководом.  Лучше, но не
     обязательно, если будет дополнительная память и второй  дисковод  или
     винчестер.
          - Знакомство с руководством по IBM PC.
          -  Дискета,  содержащая  транслятор    с    языка    ассемблера,
     предпочтительно, но не обязательно, последней версии.
          - Копию операционной системы PC-DOS или MS-DOS, лучше  последней
     версии.

     Cледующее является не обязательным для данной темы:

          - Опыт программирования.  Хотя эти знания могут  помочь  быстрее
     освоить некоторые идеи программирования, они не обязательны.
          - Хорошие знания в электронике или  схемотехнике.  Данная  книга
     дает всю необходимую информацию об архитектуре PC, которая  требуется
     для программирования на языке ассемблера.


                           Операционные системы
                          ----------------------
     Назначение операционной системы -  позволить  пользователю  yправлять
работой на  компьютере:  вызывать  для  выполнения  конкретные  программы,
обеспечивать средства для сохранения  данных  (каталог),  иметь  доступ  к
информации на диске.
     Основной операционной системой для PC и совместимых моделей  является
MS-DOS фирмы Microsoft, известная  как  PC-DOS  для  IBM  PC.  Особенности
некоторых версий: 2.0 обеспечивает поддержку твердого диска  (винчестера),
3.0  применяется  в  компьютерах  AT,   4.0    обеспечивает    работу    в
многопользовательском режиме.  Рассмотрение профессиональной  операционной
системы UNIX и ее аналога для PC XENIX выходит за рамки данной книги.


                              Подход к книге
                             ----------------
     Данная книга преследует две цели: она является учебником,  a  так  же
постоянным справочным  пособием  для  работы.  Чтобы  наиболее  эффективно
восполнить затраты на микрокомпьютер и программное обеспечение, необходимо
тщательно прорабатывать каждую главу и перечитывать материал,  котоpый  не
сразу ясен.  Ключевые моменты находятся в примерах  программ,  их  следует
преобразовать  в  выполнимые  модули  и  выполнить   их.    Прорабатывайте
упражнения, приведенные в конце каждой главы.
     Первые восемь глав составляют базовый материал для данной книги и для
языка ассемблера.  После этих глав можно продолжить с глав 9, 11, 12,  14,
15, 19, 20 или 21. Связанными являются главы с 8 по 10, 12 и 13, с  15  по
18, главы с 22 по 25 cодержат справочный материал.
     Когда вы завертшите работу с книгой, вы сможете:

          - понимать устpойство персонального компьютера;
          - понимать коды машинного языка и шестнадцатиричный формат;
          -  понимать  назначение  отдельных  шагов  при  ассемблировании,
     компановке и выполнении;
          - писать программы на языке ассемблера для  управления  экраном,
     арифметических  действий,  преобразования  ASCII  кодов  в   двоичные
     форматы,  табличного  поиска  и   сортировки,    дисковых    операций
     ввода/вывода;
          - выполнять трассировку при выполнении программы,  как  средство
     отладки;
          - писать собственные макрокоманды;
          - компановать вместе отдельные программы.

     Изучение языка  ассемблера  и  создание  работающих  программ  -  это
захватывающий  процесс.  Затраченное  время  и  усилия  несомненно   будут
вознаграждены.


                          Признательность автора
                         ------------------------
     Автор  благодарен  за  помощь  и  сотрудничество  всем,   кто    внес
предложения и просматривал рукопись.



ГЛАВА 1               Введение в семейство персональных компьютеров IBM PC
__________________________________________________________________________

     Ц е л ь: объяснить особенности технических средств микрокомпьютера  и
организации программного обеспечения.


     ВВЕДЕНИЕ
     ________________________________________________________________

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


     БИТЫ И БАЙТЫ
     ________________________________________________________________

     Для выполнения программ компьютер  временно  записывает  программу  и
данные в основную память.  Это память, которую люди имеют  в  виду,  когда
утверждают, что их компьютер имеет, например, 512К памяти. Компьютер имеет
также ряд pегистров, которые он использует для временных вычислений.
     Минимальной единицей информации в компьютере является бит.  Бит может
быть выключен, так что его значение есть  нуль,  или  включен,  тогда  его
значение равно  единице.  Единственный  бит  не  может  представить  много
информации в отличие от группы битов.
     Группа из девяти битов представляет собой байт; восемь битов которого
содержат  данные  и  один  бит  -  контроль  на  четность.  Восемь   битов
обеспечивают основу для двоичной арифметики и для представления  символов,
таких как буква A или символ *. Восемь битов дают 256 различных комбинаций
включенных и выключенных состояний: от "все выключены" (00000000) до  "все
включены" (11111111).  Например, сочетание включенных и выключенных  битов
для представления буквы A  выглядит  как  01000001,  а  для  cимвола  *  -
00101010 (это можно не запоминать).  Каждый байт в памяти компьютера имеет
уникальный адрес, начиная с нуля.
     Требование контроля на честность заключается в  том,  что  количество
включенных битов а байте всегда должно быть не четно.  Контрольный бит для
буквы A будет иметь значение единица,  а  для  символа  *  -  ноль.  Когда
команда обращается к байту в памяти, компьютер проверяет этот  байт.  Если
число включенных  битов  является  четным,  система  выдает  сообщение  об
ошибке.  Ошибка четности может явится результатом  сбоя  оборудования  или
случайным явлением, в любом случае, это бывает крайне редко.
     Может появится вопрос, откуда компьютер  "знает",  что  значения  бит
01000001 представляют букву A.  Когда  на  клавиатуре  нажата  клавиша  A,
система принимает сигнал от этой конкретной клавиши в  байт  памяти.  Этот
сигнал устанавливает биты в значения 01000001. Можно переслать этот байт в
памяти и, если передать его на экран или принтер, то  будет  сгенерирована
буква A.
     По соглашению биты в байте пронумерованы от 0 до 7 справа налево, как
это показано для буквы A:

                   Номера бит:         7 6 5 4 3 2 1 0
                   Значения бит:       0 1 0 0 0 0 0 1

     Число 2 в десятой степени равно 1024, что составляет один килобайт  и
обозначается буквой К. Например, компьютер с памятью в 512К содержит 512 х
1024, т.е. 524288 байт.
     Процессор  в  PC  и  в  совместимых  моделях  использует   16-битовую
архитектуру, поэтому он имеет доступ к 16-битовым значениям как в  памяти,
так и в регистрах. 16-битовое (двухбайтовое) поле называется словом.  Биты
в слове пронумерованы от 0 до 15 справа налево, как это показано для  букв
PC:

         Номера бит:   15 14 13 12 11 10 9 8  |  7 6 5 4 3 2 1 0
         Значения бит:  0  1  0  1  0  0 0 0  |  0 1 0 0 0 0 1 1


     ASCII КОД
     ________________________________________________________________

     Для целей стандартизации в микрокомпьютерах используется aмериканский
национальный  стандартный  код  для  обмена  информацией  ASCII  (American
National Standard Code for Information Interchange).  [Читается как "аски"
код (прим. переводчика)].  Именно по этой причине комбинация бит  01000001
обозначает букву A.  Наличие стандартного  кода  облегчает  обмен  данными
между  различными  устройствами   компьютера.    8-битовый    рассширенный
ASCII-код, используемый в  PC  обеспечивает  представление  256  символов,
включая символы для  национальных  алфавитов.  В  прил.1  приведен  список
символов ASCII кода, а в гл.8 показано как вывести на экран большинство из
256 символов.


     ДВОИЧНЫЕ ЧИСЛА
     ________________________________________________________________

     Так  как  компьютер  может  различить  только  нулевое  и   единичное
состояние бита, то он работает системе исчисления с базой 2 или в двоичной
системе.  Фактически бит унаследовал cвое название от английского  "BInary
digiT" (двоичная цифра).
     Сочетанием двоичных цифр (битов) можно  представить  любое  значение.
Значение двоичного числа определяется относительной позицией каждого  бита
и наличием единичных битов.  Ниже показано восьмибитовое число  содержащее
все единичные биты:

               Позиционные веса:      128 64 32 16 8 4 2 1
               Включенные биты:         1  1  1  1 1 1 1 1

Самый правый бит имеет весовое значение 1,  следующая  цифра  влево  -  2,
следующая - 4 и т.д.  Общая сумма для  восьми  единичных  битов  в  данном
случае составит 1 + 2 + 4 + ... + 128, или 255 (2 в восьмой степени - 1).
Предыдущая страница Следующая страница
1  2 3 4 5 6 7 8 9 10 11 12 13 14 ... 85
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (15)

Реклама