Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / 1CompArch.doc
Скачиваний:
40
Добавлен:
20.06.2014
Размер:
657.41 Кб
Скачать

Int 21h ;кодом возврата 0 прерывания 21h

code ends ;объявление конца сегмента кода

end begin ;конец программы

Программа включает два сегмента: сегмент данных с именем data и сегмент кода с именем code. Сегмент — это область памяти, адрес начала которой определяет специальный регистр — сегментный регистр. Имена и количество сегментов могут быть любыми с определенными ограничениями. Сегментных регистров бывает несколько, каждый из них указывает на свой сегмент.

Для компиляция программы можно использовать любой ассемблер, например, TASM (Turbo Assembler) компании Borland. Имя файла ассемблера — tasm.exe.

Командная строка для компиляции (табл.):

tasm sum

В результате будет создан файл с объектным кодом sum.obj.

Компоновка:

tlink sum

В результате будет создан исполняемый файл с объектным кодом sum.exe. Если его запустить, то никакого видимого эффекта не будет. Программа никак не взаимодействует с внешними устройствами, ничего не вводит и ничего не выводит. Исходные данные читаются процессором из памяти, результат также помещается в память. Исследовать работу программы можно с помощью отладчика:

td sum

Табл. Компиляция и компоновка программы

Командная строка

Преобразование

1

tasm filename

filename.asm -> filename.obj

2

tlink filename

filename.obj -> filename.exe

Расширения имен файлов писать не обязательно, если они стандартные. В этом случае компилятор и компоновщик правильно найдут нужные им файлы.

Листинг программы

Если при компиляции задать параметр "l" (listing):

tasm /l sum

, то кроме файла с объектным кодом sum.obj будет создан файл с листингом sum.lst:

1 ;sum.asm – программа, вычисляющая S=A+B

2 0000 data segment

3 0000 0001 a dw 01h

4 0002 0002 b dw 02h

5 0004 ???? s dw ?

6 0006 data ends

7 0000 code segment

8 assume ds:data

9 0000 BA 0000s begin: mov dx, data

10 0003 8E DA mov ds, dx

11 0005 A1 0000r mov ax, a

12 0008 03 06 0002r add ax, b

13 000C A3 0004r mov s, ax

14 000F B8 4C00 mov ax, 4c00h

15 0012 CD 21 int 21h

16 0014 code ends

17 end begin

Листинг — это таблица, содержащая четыре столбца:

  1. Номер строки.

  2. Адрес внутри сегмента, т. е. от его начала (смещение).

  3. Содержимое памяти по данным адресам. В сегменте данных — это значения переменных, в сегменте кода — это машинные коды команд.

  4. Ассемблерный код.

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

Из листинга видно, что командам процессора соответствуют только строки 9-15. Остальные строки соответствуют т. н. директивам ассемблера.

В любом деле фигурирует информация различных уровней. Есть информация непосредственно о задаче, а есть информация об информации — метаинформация. Это, например, различные пояснения, указания и т. п. В исходном коде на языке ассемблера присутствует информация двух типов:

  • команды — информация для процессора;

  • директивы — информация для самого ассемблера, как скомпилировать программу: как перевести команды на машинный язык и как разместить данные.

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

В рассматриваемой программе имеются следующие директивы:

  • segment — директива объявления начала сегмента;

  • dw (define word) — директива определения данных (выделения и инициализации области памяти) размером 16 бит;

  • ends (end segment) — директива объявления конца сегмента;

  • assume — директива назначения сегменту сегментного регистра;

  • end — директива указания конца программы.

Есть также следующие директивы определения данных:

  • db (define byte) — директива определения области памяти в 8 бит;

  • dd (define double word) — директива определения области памяти в 32 бита.

Строки 3-5 содержат директивы определения переменных A, B и S. В совокупности строки 3-5 и 9-15 содержат информацию для процессора — программу, включающую команды и данные. Они непосредственно отображаются на память компьютера.

Общая структура ЭВМ

Схема общей структуры ЭВМ

Рассмотрим схему общей структуры ЭВМ, более детальную по сравнению с рассмотренной ранее схемой архитектуры фон Неймана (рис.).

Рис. Схема общей структуры ЭВМ

Здесь:

  • ЦП — центральный процессор (СРU, Central Processing Unit);

  • ШФ — шинный формирователь (в самом широком смысле этого слова);

  • ЗУ — запоминающее устройство (M, Memory);

  • ОЗУ — оперативное запоминающее устройство (RAM, Random Access Memory);

  • ПЗУ — постоянное запоминающее устройство (ROM, Read Only Memory);

  • В/В — ввод/вывод (I/O, Input/Output);

  • ВУ — внешнее устройство (устройство ввода-вывода), например, клавиатура, дисплей, датчики, исполнительные механизмы и т.п.;

  • ША — шина адреса (AB, Address Bus);

  • ШД — шина данных (DB, Data Bus);

  • ШУ — шина управления (CB, Control Bus);

  • ЧТЗУ (ВУ) — чтение ЗУ (ВУ) (R, RD — Read, RC — Receive);

  • ЗПЗУ (ВУ) — запись ЗУ (ВУ) (W, WR — Write, TR — Transmit);

  • ВМ — выбор микросхемы (CS, Crystal Select).

Прим. В скобках указаны английские варианты названий устройств и сигналов ЭВМ.

Элементы ЭВМ связаны между собой посредством сигнальных линий, которые объединяются в шины. В ЭВМ выделяется три типа шин:

  • шина данных;

  • шина адреса;

  • шина управления.

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

Ширина шины адреса определяет размер адресного пространства:

AS = 2ABW,

где AS (Address Space) — размер адресного пространства;

ABW (Address Bus Wide) — ширина адресной шины.

Порты и контроллеры ввода-вывода. Дешифраторы. Ресурсы

На данной схеме помимо основных устройств показаны интерфейсные (порт ввода-вывода) и дополнительные устройства (дешифратор) ЭВМ.

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

Многие периферийные устройства работают под управлением специального устройства — контроллера (адаптера). Например, выводом информации на монитор управляет видеоадаптер. Вводом информации с клавиатуры управляет контроллер клавиатуры. В таких случаях порты ввода-вывода находятся в соответствующих контроллерах.

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

Схема на рис.2 является общей. На ней не показаны контроллеры устройств ввода-вывода. На ней также не показаны и общие типы контроллеров, которые могут управлять работой нескольких устройств ввода-вывода: контроллер прерываний и контроллер прямого доступа к памяти. Если эти контроллеры используются, то они назначают связанным с ними устройствам ввода-вывода номера прерываний и каналов прямого доступа к памяти.

Дешифратор (DC, Decoder) служит для определения (выбора) того устройства, к которому обращается процессор для приема или передачи информации. Номера портов и диапазоны адресов памяти устанавливаются именно с помощью дешифраторов.

Номера портов, диапазоны адресного пространства, номера прерываний и каналов прямого доступа в совокупности называются ресурсами, выделяемыми в ЭВМ различным устройствам.

Направления передачи информации в ЭВМ

Точкой отсчета для определения направления передачи информации в ЭВМ является процессор. Если информация движется к процессору, то это прием (чтение, ввод). Если информация движется от процессора, то это передача (запись, вывод) (табл.).

Табл. Направления передачи информации в ЭВМ

Направление

Память

УВВ

От процессора — передача (transmission)

Запись (writing)

Вывод (output)

К процессору — прием (receiving)

Чтение (reading)

Ввод (input)

Соседние файлы в папке Лекции