Простейшая микро-ЭВМ

ДАННЫЕ И ПРОГРАММЫ


Содержание этой главы носит в основном справочный характер. В ней приведены лишь основ­ные понятия и самые общие сведения о работе микро-ЭВМ, без которых неподготовленному читателю будет трудно проследить работу основных ее узлов, описанию которых посвящены после­дующие главы книги. Читатель, знакомый с основами построе­ния ЭВМ и программирования, может сразу перейти к следую­щей главе.

Как уже говорилось в предыдущей главе, чтобы решить зада­чу на машине, нужно ее запрограммировать; т. е. составить опре­деленную последовательность команд (программу), которая, вместе с данными должна быть введена в память машины. В процессе решения задачи центральный процессор обращается к памяти машины, выполняет команды, извлеченные из памя­ти, обрабатывает в соответствии с этими командами данные, извлеченные из той же памяти и полученные от внешних устройств, и в зависимости от результатов обработки перехо­дит к выполнению одной или нескольких других команд. По­следовательность команд, приводящая к решению задачи, назы­вается программой решения задачи. Каждая машина характери­зуется определенным набором операций (системой команд), или машинным языком, которые должны быть известны поль­зователю, решающему свою задачу на данной машине.

Чтобы машина могла воспринимать передаваемые ей коман­ды и данные, они должны быть представлены в двоичной форме. С этой целью каждой команде ставится в соответствие двоичный код, а все числовые значения выражаются в двоичной системе счисления.

Под двоичной системой счисления подразумевается позицион­ная весомозначная система с основанием 2 и с цифрами 0,1. Термин "позиционная весомозначная" означает, что в зависи­мости от положения цифры в числе ей приписываются разные значения, или вес. В наиболее распространенных системах счис­ления этот вес равен степени основания, показатель которой ра-вен n — 1, где п — номер разряда, отсчитываемый справа налево. Системы счисления получают наименование в зависимости от основания.
Так, в десятичной системе счисления основанием является 10, в двоичной — 2, в восьмеричной — 8, в шестнадца-теричной — 16 и т. п. При этом количество используемых цифр для представления чисел равно основанию системы счисления. В двоичной системе используются всего две цифры: 0 и 1. В де­сятичной системе используются 10 цифр от 0 до 9, в восьмерич­ной — восемь цифр, т. е. первые восемь цифр десятичной систе­мы (от 0 до 7). В шестнадцатеричной системе счисления исполь­зуются все цифры десятичной системы, а в качестве недостаю­щих шести цифр используются первые шесть букв латинского алфавита: А, В, С, D, Е, F. Примеры записи десятичных чисел от 0 до 16 и от 248 до 255 в двоичной, восьмеричной и шестнад­цатеричной системах счислений приведены в табл. 3.1. Десятич­ное число 255 является наибольшим представимым в двоичной системе счисления при условии использования всего восьми разрядов для записи чисел. Для представления чисел, больших 255, необходимо в двоичной системе счисления использовать большее число разрядов.

Чтобы отличить число, записанное в той или иной системе счисления, от числа, записанного в другой системе счисления, в конце записи обычно ставят соответствующие используемому основанию цифры или буквы (иногда в виде индексов, напри­мер 3810). Для десятичной системы счисления часто использу­ется буква D, для двоичной — В, для восьмеричной — Q, для шестнадцатеричной — Н. Например:

216 D = 11011000 В = 330 Q = D8 Н.

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



Таблица 3.1



Представление чисел

Десятичное

Двоичное

Восьмеричное

Шестнадцате-ричное

0

00000000

000

00

1

00000001

001

01

2

00000010

002

02

3

00000011

003

03

4

00000100

004

04

5

00000101

005

05

6

00000110

006

06

7

00000111

007

07

8

00001000

010

08

9

00001001

011

09

10

00001010

012

ОА

11

00001011

013



12

00001100

014

ОС

13

00001101

015

OD

14

00001110

016

ОЕ

15

00001111

017

OF

16

00010000

020

10

248

11111000

370

F8

 
249

11111001

371

F9

 
250

11111010

372

FA

 
251

11111101

373

FB

 
252

11111100

374

FC

 
253

11111101

375

FD

 
254

11111110

376

FE

 
255

11111111

377

FF

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

не совсем удобно ввиду непривычности использования буквен­ных обозначений числовых величин.

Весьма распространенным способом представления данных и команд является их восьмеричное представление. Оно до­вольно компактно и легко переводимо в двоичную форму. Для этого достаточно запомнить двоичные коды трех первых двоичных разрядов (см. табл. 3.1). Перевод двоичного числа в восьмеричное производится следующим образом. Двоичный код разбивается справа налево на триады, каждая триада считается самостоятельным двоичным кодом трехразрядного чис­ла и заменяется соответствующей цифрой от 0 до 7. Перевод восьмеричного кода в двоичный производится аналогичным образом: каждая цифра от 0 до 7 заменяется соответствую­щим двоичным кодом.



Пусть, например, требуется записать восьмеричный код восьмиразрядного двоичного числа 10110101 В. Разбитый на триады двоичный код будет 10 НО 101 В. После замены каж­дой триады двоичным кодом получим 265 Q. Двоичное представ­ление восьмеричного числа 312Q получается также просто: 11 001 010 В или 11001010 В.

Представление двоичных чисел в табл. 3.1 в виде восьмираз­рядных кодов приведено не случайно. Наименьшей единицей информации, которая может быть представлена в ЭВМ, явля­ется двоичный разряд или бит. Бит может иметь два значения: О или 1, а соответствующий ему электрический сигнал — два уровня напряжения. Группа из восьми двоичных разрядов на­зывается байтом. Более крупными единицами информации являются килобит (1024 = 210 бит, или двоичных разрядов), килобайт (1024 = 210 байт) и мегабайт (1048576 =220 байт). Иногда выделяют группу из четырех двоичных разрядов, назы­ваемую ниблом. Этим понятием пользуются при рассмотрении процессов выполнения арифметических операций в двоично-десятичных кодах.

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

Под командой подразумевается указание, записанное на машинном языке микро-ЭВМ и определяющее ее действия при выполнении отдельной операции или части вычислительного процесса. Команда может быть представлена в символической форме или в форме кодов (шестнадцатеричных, восьмеричных, двоичных). Таким образом, под программой подразумевается фиксированная последовательность команд, воспринимаемых машиной как единая целая группа указаний, позволяющая ре­шить поставленную пользователем задачу.

В качестве формального языка для описания данных и про­грамм их обработки на микро-ЭВМ используются не только машинный язык, но и специальные языки программирования, такие как, например, БЕЙСИК. Программа на таком языке, называемом иногда языком высокого уровня, не может непо­средственно восприниматься микропроцессором. В совершен­ных ЭВМ специальная программа, называемая интерпретатором или компилятором, преобразует программу на языке высоко­го уровня в эквивалентную ей программу на языке машины.



Программа, написанная на языке Ассемблер, переводится пользователем в машинные восьмеричные коды с помощью таблицы кодов (табл. 4.1 — 4,3) и вводится вместе с данными также в восьмеричных кодах в ПМ-ЭВМ с клавиатуры и разме­шается в оперативном запоминающем устройстве, в котором выделяется специальная область, где пользователь может раз­местить свою программу.

Процесс размещения программы в памяти может быть легко представлен с помощью простой модели запоминающего устрой­ства, имеющей вид обычного книжного стеллажа или открытой полки, разделенной на отдельные ячейки. Каждой ячейке при­своен номер, называемый адресом. В ячейку можно поместить данные ограниченного объема: один байт или восьмиразрядный двоичный код. Команда, занимающая три машинных слова (три байта), может быть размещена лишь в трех ячейках памяти. При этом первый байт размещается в ячейке по указанному адресу, а остальные два — в последующих ячейках памяти. Важ­но при этом правильно поместить начальную команду програм­мы, которая должна находиться в той ячейке, с которой микро­процессор начинает свою работу.

Программа для ПМ-ЭВМ представляет собой последователь­ность указанных кодов, из которых левый код — адрес ячей­ки памяти, а правый — команда или данные.

Предположим, что соответствующие программе и исходным данным найденные коды введены в ПМ-ЭВМ, На чем основаны процессы преобразования всей этой информации в машине?



Содержание раздела