Представление графической информации – растровое и векторное представления, разрешающая способность, полутоновые и цветные изображения, палитры.
Использование ЭВМ в автоматизированных системах управления, различных информационно-вычислительных системах, системах коллективного пользования (см. гл. 13) требует их укомплектования удобными средствами связи человека с машиной. Одним из таких средств является устройство ввода-вывода с электронно-лучевой трубкой (ЭЛТ), называемое монитором. В зависимости от типа монитора на экран может выводиться как алфавитно-цифровая, так и графическая информация. Устройство вывода графической информации состоит из видеопамяти (буфера образа), монитора и устройства сопряжения, передающего на монитор содержимое видеопамяти. В современных машинах первое и третье объединено в видеоадаптере.
При векторном представлении графической информации электронный луч на мониторе непрерывно пробегает между заданными точками, порождая отрезок – вектор. Такое представление наиболее удобно для изображений, состоящих из линий и простых геометрических фигур. В этом случае векторное изображение легко масштабируется и требует малый объем памяти для хранения.
Если изображение состорит из многих точек разных оттенков (полутоновое изображение), то векторный способ будет слишком сложен в реализации, и используется растровый способ представления – разбиение изображения на мельчайшие “клетки” и вывод на экран сетки точек – растра (bitmap). Разрешающая способность растра – величина, показывающая, сколько точек может быть выведено на квадратную единицу изображения (ед. измерения – dpi (точек на дюйм)). Для видеосистемы единицей измерения может быть размер выводимой точки и общее количество пикселов, выводимое на экран монитора (например, 1024х768).
В случае монохромного изображения для кодирования 1 точки в буфере образа достаточно одного бита – светится или нет. В случае полутонового или цветного изображения количество бит на точку буфера должно быть таково, чтобы представить все возможные цвета или оттенки. Например, 8 битами можно представить 256 цветов или оттенков. В таких системах программист имеет доступ к палитре – ресурсу видеоадаптера, позволяющему устанавливать цвета или оттенки для каждого кода цвета.
Представление звуковой информации – общее понятие о дискретизации и квантовании звуковых сигналов, точность представления звуковых колебаний.
Представление звуковой информации в ЭВМ:
а) Преобразование в цифровую форму с помощью аналого-цифрового преобразователя. При этом звук превращается в цепочку импульсов, сост. из 8 или 16 бит (фактически в вектор 8-битовых ил 16-битовых чисел)
б) Дискретизация этого сигнала с постоянной частотой. Если например голос человека дискретизируется с частотой 8КГц, используя 8 бит, на протяжении 10с, это займет 80К. По дискретизированным значениям можно восстановить сигнал с заданной точностью и направить его в цифро-аналоговый преобразователь. Усилив сигнал с выхода ЦАП, получим звук.
При малой частоте дискретизации часть данных теряется вследствие т.н. шума квантования, и мы не можем достаточно точно воспроизвести данные. Закон Шеннона для дискретизации: для достижения полного соответствия восстановленного сигнала исходному следует дискретизировать последний с частотой, в 2 раза превышающей его максимальную частоту. CD-проигрыватели работают с частотой 44KГц, и на такой частоте звук не теряет в качестве.
Равномерная дискретизация – замена сигнала последовательностью его мнгновенных значений, взятых через равные промежутки времени.
Квантование – разбиение функции сигнала через определенный шаг на интервалы - уровни квантования и замена сигнала значениями, взятыми с этих интервалов.
Форматы хранения оцифрованного звука в файлах:
VOC – стандарт де-факто от Creative.
WAV – формат оцифрованного звука от Microsoft.
Layer 1, 2, 3 audioMPEG – эффективно закодированный (сжатый примерно в 10 раз) формат хранения оцифрованного звука - сейчас приобретает наибольшее распространение.
Общее описание языка ASM. Типы данных. Оформление программ. Формат записи команд.
Ассемблер – машинно-ориентированный язык, имеющий 2 основных достоинства. 1)позволяет писать программы на уровне команд процессора 2)не требует знания этих команд, каждая из них заменяется удобной для запоминания мнемоникой – сокращением английских слов. Транслятор переводит мнемоники в их числовые эквиваленты.
Элементы языка: операторы (команды ассемблера + псевдооператоры макроассемблера), операнды, выражения, константы, метки, комментарии.
Собственно команды ассемблера процессора – м.б. без операндов, с одним или двумя операндами, использовать различные типы адресации (см. 19)
Псевдооператоры – 5 групп: определение идентификаторов (EQU), данных (DB), внешние ссылки (PUBLIC, EXTRN), определение сегментов и подпрограмм (SEGMENT, PROC), управление трансляцией (END).
Константы – м.б. числовые и литералы (последовательность букв, закл. в апострофы).
Комментарии – начинаются с символа ; и предназначены для улучшения читаемости программы.
Метки – предназначены для организации переходов в программе. М.б. локальные и глобальные. Представляют собой символьные имена, заканчивающиеся на :.
Типы данных языка.
Целые типы.
BYTE – байт (однобайтовое целое число, код символа, элемент строки)
WORD – слово (целое число со знаком или без знака)
DWORD – двойное слово, длинное целое
Указатели
Полный 32-битовый указатель или 16-битовое смещение.
Вещественные типы (типы мат.сопроцессора) – действительные числа длиной 32, 64, 80 бит.
Массивы
В ассемблере возможно объявление массивов чисел.
Перичислимые и составные типы
ENUM – набор значений, заним. определенное кол-во бит.
RECORD – запись с битовыми полями, каждое из которых имеет длину опр. количество бит и инициализируется некоторыми значениями.
STRUC – структура, элемент содержащий 1 или более типов данных, называемых членами структуры.
UNION (объединение) – то же самое, что и структура, за исключением того, что все члены объединения занимают 1 и тот же участок памяти.
Формат команды языка:
[Метка:] мнемокод [операнд] [;комментарий]
По умолчанию заглавные и строчные буквы в языке не различаются.
Оформление программ:
[Общие для всех сегментов директивы]
...
Директива открытия сегмента
Текст программы или описание данных
Директива закрытия сегмента
... (может повторяться несколько раз в зависимости от числа сегментов)
Директива окончания программного файла
Константы, метки, условная компиляция.
Константы – м.б. числовые (десятичные, двоичные, шестадцатеричные)
ten EQU 10
antiten EQU –10
bitmask EQU 10001001b
video EQU 0A000h
и литералы – символьные
sEQU ‘stringdata'
Метки – служат для присваивания имени команде языка ассемблера. Предназначены для организации переходов в программе. Представляют собой символьные имена, заканчивающиеся на :. Глобальные метки действуют во всей программе. Локальные – только внутри подпрограммы.
Директивы условной трансляции предназначены для обозначения блока программного кода, который включается в объектный файл только тогда, когда выполняется заданное условие. Cинтаксис:
Ifxxx
;операторы, помещаемые в файл при выполнении условия
ELSE
;операторы, помещаемые в файл, если условие не выполнено
ENDIF
Существуют также дрективы ELSEIF, которые позволяют создавать множественные конструкции IF.
Компилятор ассемблер-программ, редактор связей (загрузчик).
Компилятор с ассемблера обрабатывает исходный код, преобразуя его в код команд на машинном языке. Результат его работы называется объектным кодом. В объектном коде необязательно находится весь код программы – в нем могут быть т.н. внешние ссылки на библиотечные процедуры или процедуры в других модулях, а также на данные.
Следующий шаг – создание исполняемой программы. Сборкой всех частей программы занимается редактор связей. Он размещает все модули в памяти и настраивает адресные константы внутри них так, чтобы они соответствовали фактическому местоположению в памяти.
Редакторы бывают 3 разновидностей.
Загрузчик – загружает объектный модуль и передает управление на точку входа программы.
Компоновщик – формирует исполняемый файл, точно соответствующий образу программы в памяти, привязывая его к абсолютным адресам.
Компоновщик, генерирующий псевдоперемещаемый код – записывает в исполняемый файл таблицу перемещений (relocationtable), где содержатся данные о ячейке внутри кода, которая зависит от местоположения в памяти. Такой исполняемый файл перед запуском программы требует настройки. Этим занимается операционная система, в формате которой создается исполняемый модуль.
Основная память ЭВМ. Адресация, адресное пространство.
Число микросхем памяти, физически присутствующих в компьютере, определяет объем памяти, которую можно использовать для программ и данных. Это число может меняться от машины к машине. Объем памяти обычно можно наращивать с помощью плат расширения, вставляемых в специальные разъемы. Для процессора память - это не более чем несколько тысяч 8-разрядных ячеек, каждая из которых имеет уникальный адрес.
Говорят обычно не о физическом объеме памяти, а об адресуемой памяти. 8086 может адресоваться к 1024 К, то есть к 1048576 байтам памяти. Другими словами, это - максимальное количество различных адресов и, следовательно, максимальное количество байт данных, к которым может обратиться процессор.
Обращение к байту памяти производится с помощью 20-разрядного адреса. В схеме использования памяти процессором 8086 адреса имеют "ширину" 20 бит, поскольку они передаются по 20- разрядной шине адреса. Обычно адреса представляются в шестнадцатеричной системе исчисления. Таким образом, допустимый диапазон адресов памяти - от ООООО до FFFFF в шестнадцатеричной системе исчисления. При рассмотрении 1024 Кбайтного адресного пространства PC его делят на 16 блоков по 64 Кбайт и обозначают каждый из этих блоков шестнадцатеричной цифрой, совпадающей со старшей цифрой адреса. Например, первые 64 Кбайт памяти - блок О, адреса байтов этого блока от ООООО до OFFFF, последние 64 Кбайт - блок F, адреса байтов этого блока от FOOOO до FFFFF.