Перичислимые и составные типы



ENUM – набор значений, заним. определенное кол-во бит.

RECORD – запись с битовыми полями, каждое из которых имеет длину опр. количество бит и инициализируется некоторыми значениями.

STRUC – структура, элемент содержащий 1 или более типов данных, называемых членами структуры.

UNION (объединение) – то же самое, что и структура, за исключением того, что все члены объединения занимают 1 и тот же участок памяти.

Формат команды языка:

[Метка:] мнемокод [операнд] [;комментарий]

По умолчанию заглавные и строчные буквы в языке не различаются.

Оформление программ:

[Общие для всех сегментов директивы]

...

Директива открытия сегмента

Текст программы или описание данных

Директива закрытия сегмента

... (может повторяться несколько раз в зависимости от числа сегментов)

Директива окончания программного файла

 

14. Константы, метки, условная компиляция.

Константы – м.б. числовые (десятичные, двоичные, шестадцатеричные)

ten EQU 10

antiten EQU –10

bitmask EQU 10001001b

video EQU 0A000h

и литералы – символьные

s EQU ‘string data'

Метки – служат для присваивания имени команде языка ассемблера. Предназначены для организации переходов в программе. Представляют собой символьные имена, заканчивающиеся на :. Глобальные метки действуют во всей программе. Локальные – только внутри подпрограммы.

Директивы условной трансляции предназначены для обозначения блока программного кода, который включается в объектный файл только тогда, когда выполняется заданное условие. Cинтаксис:

Ifxxx

;операторы, помещаемые в файл при выполнении условия

ELSE

;операторы, помещаемые в файл, если условие не выполнено

ENDIF

Существуют также дрективы ELSEIF, которые позволяют создавать множественные конструкции IF.

 

15. Компилятор ассемблер-программ, редактор связей (загрузчик).

 

Компилятор с ассемблера обрабатывает исходный код, преобразуя его в код команд на машинном языке. Результат его работы называется объектным кодом. В объектном коде необязательно находится весь код программы – в нем могут быть т.н. внешние ссылки на библиотечные процедуры или процедуры в других модулях, а также на данные.

Следующий шаг – создание исполняемой программы. Сборкой всех частей программы занимается редактор связей. Он размещает все модули в памяти и настраивает адресные константы внутри них так, чтобы они соответствовали фактическому местоположению в памяти.

Редакторы бывают 3 разновидностей.

1) Загрузчик – загружает объектный модуль и передает управление на точку входа программы.

2) Компоновщик – формирует исполняемый файл, точно соответствующий образу программы в памяти, привязывая его к абсолютным адресам.

3) Компоновщик, генерирующий псевдоперемещаемый код – записывает в исполняемый файл таблицу перемещений (relocation table), где содержатся данные о ячейке внутри кода, которая зависит от местоположения в памяти. Такой исполняемый файл перед запуском программы требует настройки. Этим занимается операционная система, в формате которой создается исполняемый модуль.

 

16. Основная память ЭВМ. Адресация, адресное пространство.

 

Число микросхем памяти, физически присутствующих в компьютере, определяет объем памяти, которую можно использовать для программ и данных. Это число может меняться от машины к машине. Объем памяти обычно можно наращивать с помощью плат расширения, вставляемых в специальные разъемы. Для процессора память - это не более чем несколько тысяч 8-разрядных ячеек, каждая из которых имеет уникальный адрес.

Говорят обычно не о физическом объеме памяти, а об адресуемой памяти. 8086 может адресоваться к 1024 К, то есть к 1048576 байтам памяти. Другими словами, это - максимальное количество различных адресов и, следовательно, максимальное количество байт данных, к которым может обратиться процессор. 

Обращение к байту памяти производится с помощью 20-раз­рядного адреса. В схеме использования памяти процессором 8086 адреса имеют "ширину" 20 бит, поскольку они передаются по 20- разрядной шине адреса. Обычно адреса представляются в шестнадцатеричной системе исчисления. Таким образом, допустимый диапазон адресов памяти - от ООООО до FFFFF в шестнадцатеричной системе исчисления. При рассмотрении 1024 Кбайтного адресного пространства PC его делят на 16 блоков по 64 Кбайт и обозначают каждый из этих блоков шестнадцатеричной цифрой, совпадающей со старшей цифрой адреса. Например, первые 64 Кбайт памяти - блок О, адреса байтов этого блока от ООООО до OFFFF, последние 64 Кбайт - блок F, адреса байтов этого блока от FOOOO до FFFFF.

Структура основной памяти, адресуемой 8086

F000 ПЗУ: BIOS, ROM-BASIC, диагностика
E000 Расширения ПЗУ
D000 Расширения BIOS
C000 Расширения BIOS
B000 Видеопамять
A000 Видеопамять
9000 ОЗУ
8000 ОЗУ
7000 ОЗУ
6000 ОЗУ
5000 ОЗУ
4000 ОЗУ
3000 ОЗУ
2000 ОЗУ
1000 ОЗУ
0000 ОЗУ; обычно здесь ПО ОС.

 

Теоретически, любая область памяти может представлять собой либо неизменяемое ПЗУ, либо ОЗУ. Однако принято первые десять блоков (блоки с нулевого по девятый общим объемом 640 Кбайт) заполнять оперативной памятью. Оперативная память в PC устанавливается начиная с блока О и последовательно, без пропусков, наращивается до блока 9 включительно. Если не все десять блоков заполнены, то программы не должны использовать адреса несуществующей памяти. Обращение по этим адресам может вызывать различные последствия в зависимости от модели машины, однако обычно эта ошибка никак не обнаруживается и программа продолжает работу.

 

 

17. Общая структура машинных команд, адресность. Способы адресации операндов. Расслоение памяти, выравнивание, кэш-память.


Дата добавления: 2019-07-15; просмотров: 140; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!