- •1.Понятие об архитектуре, структуре и принципах программного управления компа.
- •2. Структурная схема простейшего компа
- •4. Архитектура компа с параллельной обработкой.
- •5.Прямой, обратный и дополнительный коды
- •6. Формальная и матем. Логика. Логич. Константы и переменные. Операции и, или, не над ними.
- •7. Таблицы истинности. Булевы функции, принципы минимизации.
- •8. Построение логич. Схем из эл-ов и, или, не . Логич. Эл-ы и-не, или-не.
- •1.1. Логический элемент и
- •10. Примен. Двоичных логич. Эл-ов
- •12. Арифметические устройства
- •13. Структура персонального компьютера
- •14. Корпус и блок питания. Стандарты. Проблемы при сборке компа. Источники резервного питания.
- •15. Процессор. История создания. Общая структурная схема микропроцессора. Технологии изготовления. Процессоры Pentium и их поколения.
- •16. Процессоры Intel. 8-разрядные микропроцессоры. 16-разрядные процессоры(80186, 80286). 32-разрядные процессоры(Intel 386, Intel 486, dx, совместимые с Intel 486).
- •17. Совместимость, идентификация и сравнение производительности процессоров.
- •18. Охлаждение процессоров. Доработка системы охлаждения. Дополнительное охлаждение.
- •19. Электронная память. Виды памяти. Основные принципы работы электронной памяти. Быстродействие и производительность памяти.
- •21. Системные (материнские) платы. Ее компоненты и их размещение. Основные принципы работы. Конструкции.
- •22. Шины расширения (isa, pci, agp). Сокеты для процессоров. Оперативная память.
- •23. Настройка системной платы. Органы управления и индикации. Микросхемы поддержки (чипсеты).
- •24. Bios. Инициализация, ресурсы, распределение памяти. Программа post. Цифровая индикация ошибок.
- •25. Загрузка операционной системы. Настройка bios. Стандартная конфигурация, установка винчестера.
- •27. Клавиатура (раскладка, кодировка, скан-коды, конструкции, интерфейс).
- •28. Манипулятор «мышь» (конструкция, подключение, настройка параметров). Эволюция «мышей». Оптическая мышь. Беспроводные мыши.
- •29. Графические планшеты (настройка, конструкция).
- •30. Джойстики. Игровая клавиатура. Рули.
- •31. Сканеры. Назначение и разновидности.
- •32. Видеоадаптеры. Режимы работы. Глубина цвета и разрешение. Принципы построения изображения. Характеристики видеоадаптеров. Tv-тюнеры.
- •33. Мониторы. Основные характеристики мониторов. Их разновидности и основные режимы работы.
- •34. Внешняя память. Принципы записи информации на компьютерные носители.
- •35. Гибкие диски и их логическая структура. Подключение дисковода.
- •36. Накопители Zip.
- •37. Винчестеры. Конструкция, охлаждение, интерфейс, подключение, параметры. Проблемы больших дисков. Обслуживание винчестеров (правка загрузочной записи, свопинг). Ultra dma. Serial ata.
- •38. Оптические диски (cd-rom). Конструкция, логическая структура, скорость передачи данных, методы записи. Приводы компакт-дисков, их управление, подключение и регистрация в Windows.
- •39. Магнитооптические диски. Записываемые оптические диски. Программы для записи компакт-дисков.
- •41. Звук. Канал звука и его использование. Звуковые карты. Подключение внешних устройств. Midi-клавиатуры и синтезаторы. Звуковые колонки. Микрофоны и наушники.
- •43. Классификация компьютерных сетей. Топология. Архитектура. Передача данных. Протоколы. Адресация. Локальные компьютерные сети.
- •44. Сетевые карты (программные ресурсы сетевой платы, настройка операционной системы).
- •45. Модемы и факс-модемы (устройство, конструкция, скорость передачи данных, ат-команды модема, настройка, подключение).
- •46. Общие принципы работы мп Intel 8086.
- •48. Сегментная организация памяти. Кодирование команд.
- •1.1 Замечание
- •1.2 Программирование на языке ассемблера
- •49. Регистры процессора.
- •50. Работа со стековой памятью.
- •51. Способы адресации мп Intel 8086.
- •52. Синтаксис ассемблера. Структура программы на языке Ассемблера.
- •53. Команды и директивы. Директивы описания данных.
- •54. Разработка программы на языке ассемблера: этапы написания и отладки программы. Среда разработки программ на Ассемблере
- •55. Основные команды мп Intel 8086: команды обмена данными, арифметические команды, логические и команды сдвига.
52. Синтаксис ассемблера. Структура программы на языке Ассемблера.
Структура и образ памяти программы .ЕХE
Программы, выполняемые под управлениемMS-DOS, могут принадлежать к одному из двух типов, которым соответствуют расширения имен программных файлов .СОМ и .ЕХЕ. Основное различие этих программ заключается в том, что программы типа .СОМ состоят из единственного сегмента, в котором размещаются программные коды, данные и стек, а в программах типа .ЕХЕ для собственно программы, данных и стека предусматриваются отдельные сегменты. Таким образом, размер программы типа .СОМ не может превысить 64 Кбайт, а размер программы типа .ЕХЕ практически не ограничен, так как в нее может входить любое число сегментов программы и данных.
Структура типичной программы типа .ЕХЕ на языке ассемблера выглядит следующим образом.
titleПрограмматипа .ЕХЕ
text segment 'code'
assume CS:text, DS:data
mургос proc
mov AX,data
mov DS, AX
;Текст программы
. . .
;Определения
данных
text ends
data segment
. . .
data ends
stack segment stack 'stack*
dw 128 dup (0)
stackends
endmyproc
Следует заметить, что при вводе исходного текста программы с клавиатуры можно использовать как прописные, так и строчные буквы. В настоящей книге принята следующая система обозначений:
- тексты программ набраны строчными буквами, за исключением обозначений регистров (AX, CS) и имен файлов (MYFILE.TXT), которые для наглядности выделены прописными буквами;
- в тексте книги (но не в программах) прописными буквами выделены зарезервированные слова, т.е. операторы языка ассемблера (SEGMENT, ENDS, MOV и т.д.), а также имена файлов.
Рассмотрим теперь структуру приведенной программы. ОператорTITLE позволяет предпослать программе текстовый заголовок, который будет выводиться на все страницы листинга трансляции. Программа состоит из трех сегментов: сегмента команд, или программного сегмента с произвольным именемtext, сегмента данных с именемdata и сегмента стека с именем stack (оба эти имени также могут выбираться произвольно). Каждый сегмент открывается операторомSEGMENT и закрывается операторомENDS. Перед обоими операторами должно стоять имя сегмента. Порядок сегментов в большинстве случаев роли не играет.
Слово 'CODE', стоящее в апострофах в строке описания сегмента команд, указывает класс сегмента - "программный".
Текст сегмента команд начинается с оператораASSUME, который позволяет транслятору сопоставить сегментные регистры и адресуемые ими сегменты. ОпределениеCS:text указывает транслятору, что данный сегмент является программным и будет адресоваться с помощью сегментного регистра CS. ОпределениеDS:data закрепляет за сегментомdata сегментный регистр DS, как регистр, используемый по умолчанию, что позволяет ссылаться на переменные, описанные в сегментеdata, без явного указания регистра DS. При этом ассемблер проверяет, действительно ли они описаны в сегментеdata.
Собственно программа обычно состоит из процедур. Деление программы на процедуры не обязательно, но повышает ее наглядность и облегчает передачу управления на подпрограммы и в другие программные модули
Сегмент данных содержит описания всех переменных, используемых в программе. Способы описания данных будут рассмотрены ниже.
Строка описания сегмента стека должна содержать класс сегмента - 'STACK', а также тип объединения -STACK. Тип объединения указывает компоновщику, каким образом должны объединяться одноименные сегменты разных модулей - накладываясь друг на друга (тип объединенияCOMMON) или присоединяясь друг к другу (тип объединенияSTACK для сегментов стека илиPUBLIC для всех остальных). Хотя для одномодульных программ тип объединения значения не имеет, для сегмента стека обязательно указание типаSTACK, поскольку в этом случае при загрузке программы выполняется автоматическая инициализация регистровSS (адресом начала сегмента стека) и SP (смещением конца сегмента стека).
Текст программы заканчивается директивойEND, завершающей трансляцию. В качестве операнда этой директивы указывается точка входа в главную процедуру.
Образ программы в памяти начинается с префикса программного сегмента (ProgramSegmentPrefics, PSP), образуемого и заполняемого системой. PSP всегда имеет размер 256 байтов содержит таблицы и поля данных, используемые системой в процессе выполнения программы. Некоторые из этих полей будут описаны ниже. Вслед за PSP располагаются сегменты программы. Сегментные регистры автоматически инициализируются следующим образом:ES и DS указывают на начало PSP (чтодает возможность, сохранив их содержимое, обращаться затемiпрограмме кPSP), CS - на начало сегмента команд,aSS - на начало сегмента стека. В указатель командIP загружается относительный адрес точки входа в программу (из операнда директивыEND), а в указатель стекаSP - смещение конца сегмента стека. Таким образом, после загрузки программы в па мять адресуемыми оказываются все сегменты, кроме сегмента данных. Инициализация регистраDS в первых строках программы, позволяет сделать адресуемым и этот сегмент.
Структура и образ памяти программы .СОМ Как уже отмечалось, программа типа .СОМ отличается от программы типа .ЕХЕ тем, что содержит лишь один сегмент включающий все компоненты программы: PSP, программный код (т.е. оттранслированные в машинные коды программныестроки), данные и стек. Структура типичной программы типа •СОМ на языке ассемблера выглядит следующим образом:
title Программатипа .СОМ
text segment 'code'
assume CS:text,DS:text
org lOOh
myproc proc
; Текстпрограммы
…
myproc endp
… ;Определения данных
text ends
end myproc Программасодержит единственный сегментtext, которому присвоен класс 'CODE'. В оператореASSUME указано, что сегментные регистры CS и DS будут указывать на этот единственный сегмент. Оператор ORG lOOh резервирует 256 байт дляPSP. ЗаполнятьPSP будет по-прежнему система, но место под него в начале сегмента должен отвести программист. В программе нет необходимости инициализировать сегментный регистрDS, поскольку его, как и остальные сегментные регистры, инициализирует система. Данные можно разместить после программной процедуры (как это показано на рисунке), или внутри нее, или даже перед ней. Следует только иметь в виду, что при загрузке программы типа .СОМ регистрIPвсегда инициализируется числомlOOh, поэтому сразу вслед за операторомORG lOOh должна стоять первая выполнимая строка программы. Если данные желательно расположить в начале программы, перед ними следует поместить оператор перехода на реальную точку входа, напримерJMPentry.
После загрузки программы все сегментные регистры указывают на начало единственного сегмента, т.е. фактически на начало PSP. Указатель стека автоматически инициализируется числом FFFEh. Таким образом, независимо от фактического размера программы ей выделяется 64 Кбайт адресного пространства, всю нижнюю часть которого занимает стек. Поскольку верхняя граница стека не определена и зависит от интенсивности и способа использования стека программой, следует опасаться затирания стеком нижней части программы. Впрочем, такая опасность существует и в программах типа .ЕХЕ.