Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основной текст лекций.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.25 Mб
Скачать
      1. Магнитные ленты

ЗУ на базе магнитных лент используется в основном для архивации информации. Носителем служит тонкая полистироловая лента шириной 0,38 – 2,54 см и толщиной около 0,025 мм, покрытая магнитным слоем. Данные записываются последовательно, байт за байтом, от начала ленты до ее конца.

Обычно вдоль ленты располагается 9 дорожек, что позволяет записывать поперек ленты байт данных и бит контроля. Информация на ленте сгруппирована в блоки – записи. Идентификация записи производится по полю заголовка. Начало и конец ленты маркируются металлическими полосками, либо другим способом.

Ленты наматываются на бобины различного диаметра. В универсальных ВМ обычно применяются бобинные устройства с вакуумными системами стабилизации скорости перемещения ленты. В них скорость перемещения ленты составляет около 300 см/с, плотность записи – 4Кбайт/ см, скорость передачи информации – 320Кбайт/с. Типовая бобина содержит 730 м магнитной ленты.

Глава 5 Язык Ассемблер

Распространение микрокомпьютеров послужило причиной пересмотра отношения к языку Ассемблера по двум основным причинам. Во-первых, программы, написанные на языке ассемблера, требуют значительно меньше памяти и времени выполнения. Во-вторых, знание языка ассемблера и результирующего машинного кода дает понимание архитектуры машины, что вряд ли обеспечивается при работе на языке высокого уровня. Хотя большинство специалистов в области программного обеспечения ведут разработки на языках высокого уровня, таких как Паскаль или С, что проще при написании программ, наиболее мощное и эффективное программное обеспечение полностью или частично написано на языке Ассемблера.

Языки высокого уровня были разработаны для того, чтобы избежать специальной технической особенности конкретных компьютеров. Язык Ассемблера, в свою очередь, разработан для конкретной специфики компьютера или точнее для специфики процессора.

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

    1. Структура программы на языке Ассемблер

Программа на языке ассемблера представляет собой совокупность блоков памяти, называемых сегментами памяти. Программа может состоять из одного или нескольких таких блоков. Каждый сегмент содержит совокупность предложений языка. Каждая программа содержит сегменты данных и команд, но минимально должна содержать сегмент команд.

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

Команды языка ассемблера в исходной программе может иметь следующий вид:

[метка:] <мнемоника_команды> [операнд1][,операнд2][,операнд3] [;комментарии]

Обязательным является только <мнемоника_команды>.

Поле метки служит для присваивания имени команде языка ассемблера. По нему на эту команду могут ссылаться другие команды программы. Идентификатор метки должен обязательно заканчиваться двоеточием.

Поле <мнемоники_команды> содержит имя команды процессора (например, MOV, ADD).

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

Поле комментариев начинается с символа ‘;’ и может содержать любые символы. Транслятор просто игнорирует все символы, которые идут после точки с запятой. Комментарии могут быть самостоятельными, т.е. не входить в команду ассемблера. Для этого достаточно начать строку с точки с запятой.

Пример строки программы из четырех полей:

Поле метки

Поле операции

Поле операндов

Поле комментария

M1:

Add

AX, BX

; сложение

Имена данных, процедур, сегментов или метки команд могут состоять не более чем из 31 латинских букв (AZ, az) и цифр (от 0 до 9), причем первым символом должна быть обязательно буква. Большие и маленькие буквы не различаются. При написании текста программ могут использоваться знаки ?, @, $, _, & и разделители , . [ ] ( ) < > { } + / * % ! ' " ? \ = # ^.

Практически каждое предложение содержит описание объекта, над которым или при помощи которого выполняется некоторое действие. Мнемоническая команда указывает ассемблеру, какое действие должен выполнить данный оператор. В сегменте данных команда (или директива) определяет поле, рабочую область или константу. В сегменте кода команда определяет действие, например, пересылка (MOV) или сложение (ADD).

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

Операнд определяет начальное значение данных или элементы, над которыми выполняется действие по команде.

Команда может иметь один или два операнда, или вообще быть без операндов. Рассмотрим следующие три примера:

Команда

Операнд

Комментарий

Нет операндов

RET

;Вернуться

Один операнд

INC

CX

;Увеличить CX

Два операнда

ADD

AX,12

;Прибавить 12 к AX

Рассмотрим особенности использования в командах имен, имен в квадратных скобках и чисел. В следующих примерах WORDA определяет слово в памяти:

MOV AX,BX ;Переслать содержимое BX в регистр AX

MOV AX,WORDA ;Переслать содержимое WORDA в регистр AX

MOV AX,[BX] ;Переслать содержимое памяти с адресом,

; хранящимся в регистре BX, в регистр AX

MOV AX,25 ;Переслать значение 25 в регистр AX

MOV AX,[25] ;Переслать содержимое по смещению 25