![]() |
|
![]() |
![]() |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() |
ИНФОРМАЦИОННО-ЛОГИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ
|
Цифра |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
А |
В |
С |
D |
E |
F |
Код |
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
1010 |
1011 |
1100 |
1101 |
1110 |
1111 |
Пример 4.7. Десятичное число 9703 в двоично-десятичной системе выглядит так:
1001011100000011.
При программировании иногда используется шестнадцатеричная система счисления, перевод чисел из которой в двоичную систему счисления весьма прост - выполняется поразрядно (полностью аналогично переводу из двоично-десятичной системы).
Для изображения цифр, больших 9, в шестнадцатеричной системе счисления применяются буквы А=10, В=11, С=12, D=13, Е=14, F=15.
Пример 4.8. Шестнадцатеричное число F17B в двоичной системе выглядит так:
1111000101111011.
Варианты представления информации в ПК
Вся информация (данные) представлена в виде двоичных кодов. Для удобства работы введены следующие термины, обозначающие совокупности двоичных разрядов (табл. 4.2). Эти термины обычно используются в качестве единиц измерения объемов информации, хранимой или обрабатываемой в ЭВМ.
Таблица 4.2. Двоичные совокупности
Количество двоичных разрядов в группе |
1 |
8 |
16 |
8*1024 |
8*10242 |
8*10243 |
8*10244 |
Наименование единицы измерения |
Бит |
Байт |
Параграф |
Килобайт (Кбайт) |
Мегабайт (Мбайт) |
Гигабайт (Гбайт) |
Терабайт (Тбайт) |
Последовательность нескольких битов или байтов часто называют полем данных Биты в числе (в слове, в поле и т.п.) нумеруются справа налево, начиная с 0-го разряда.
В ПК могут обрабатываться поля постоянной и переменной длины.
слово - 2 байта | двойное слово - 4 байта |
полуслово - 1 байт | расширенное слово - 8 байт |
слово длиной 10 байт- 10 байт |
Числа с фиксированной запятой чаще всего имеют формат слова и полуслова, числа с плавающей запятой - формат двойного и расширенного слова.
Поля переменной длины могут иметь любой размер от 0 до 256 байт, но обязательно равный целому числу байтов.
Пример 4.9. Структурно запись числа -193(10)=-11000001(2) в разрядной сетке ПК выглядит следующим образом.
Число с фиксированной запятой формата слово со знаком:
|
Знак числа |
Абсолютная величина числа |
||||||||||||||
N разряда |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Число |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
Число с плавающей запятой формата двойное слово:
|
Знак числа |
Порядок |
Мантисса |
|||||||||||||||||
N разряда |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
... |
1 |
0 |
Число |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
... |
0 |
0 |
Двоично-кодированные десятичные числа могут быть представлены в ПК полями переменной длины в так называемых упакованном и распакованном форматах.
В упакованном формате для каждой десятичной цифры отводится по 4 двоичных разряда (полбайта), при этом знак числа кодируется в крайнем правом полубайте числа (1100 - знак "+" и 1101 - знак "-").
Структура поля упакованного формата:
Цф |
Цф |
Цф |
Цф |
. . . |
Цф |
Знак |
Здесь и далее: Цф - цифра,Знак - знак числа.
Упакованный формат используетсяобычно в ПК при выполнении операций сложения и вычитания двоично-десятичных чисел.
В распакованном формате для каждой десятичной цифры отводится по целому байту, при этом старшие полубайты (зона) каждого байта (кроме самого младшего) в ПК заполняются кодом 0011. (в соответствии с ASCII-кодом), а в младших (левых) полубайтах обычным образом кодируются десятичные цифры. Старший полубайт (зона) самого младшего (правого) байта используется для кодирования знака числа.
Структура поля распакованного формата:
Зона |
Цф |
Зона |
Цф |
. . . |
Зона |
Цф |
Знак |
Цф |
Распакованный формат используется в ПК при вводе-выводе информации в ПК, а также при выполнении операций умножения и деления двоично-десятичных чисел.
Пример 4.10. Число-193(10)=-000110010011(2-10) в ПК будет представлено:
в упакованном формате
0001 |
1001 |
0011 |
1101 |
в распакованном формате
0011 |
0001 |
0011 |
1001 |
1101 |
0011 |
КОДЫ ASCII
Распакованный формат представления двоично-десятичных чисел (иногда его называют "зонный") является следствием использования в ПК ASCII-кода для представления символьной информации.
Код ASCII (American Standard Code for Information Interchange - Американский стандартный код для обмена информацией) имеет основной стандарт и его расширение (табл. 4.3).Основной стандарт для кодирования символовиспользует шестнадцатеричные коды 00-7F,расширение стандарта - 80 -FF. Основной стандарт является международным и используется для кодирования управляющих символов, цифр и буквлатинского алфавита; в расширении стандарта кодируются символы псевдографики и буквынационального алфавита (естественно, в разных странах разные).
Таблица 4.3. Таблица кодов ASCII
ЛОГИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ ПК
Основы алгебры логики
Для анализа и синтеза схем в ЭВМ при алгоритмизации и программировании решения задач широко используется математический аппарат алгебры логики.
Алгебра логики - это раздел математической логики, значениявсех элементов (функций и аргументов) которой определены в двухэлементном множестве: 0 и 1. Алгебра логики оперирует с логическими высказываниями.
Высказывание - это любое предложение, в отношении которого имеет смысл утверждение о его истинности или ложности. При этом считается, что высказывание удовлетворяет закону исключенного третьего, т.е. каждое высказывание или истинно, или ложно и не может быть одновременно и истинным, и ложным.
Пример 4.11. Высказывания: "Сейчас идет снег"- это утверждение может быть истинным или ложным; "Вашингтон столица США" истинное утверждение; "Частное от деления 10 на 2 равно 3" -ложное утверждение.
В алгебре логики все высказывания обозначают буквами а, b, с и т.д. Содержание высказываний учитывается только при введении их буквенных обозначений, и в дальнейшем над ними можно производить любые действия, предусмотренные данной алгеброй. Причем если над исходными элементами алгебры выполнены некоторые разрешенные в алгебре логики операции, то результаты операций также будут элементами этой алгебры.
Простейшими операциями в алгебре логики являются операции логического сложения (иначе, операция ИЛИ, операция дизъюнкции) и логического умножения (иначе, операция И, операция конъюнкции). Для обозначения операции логического сложения используют символы + или V, а логического умножения - символы * или L .
Правила выполнения операций в алгебре логики определяются рядом аксиом, теорем и следствий.
В частности, для алгебры логики выполняются законы:
1) сочетательный:
(a + b) + с = а + ( b + с);
(а * b) * с = а * (b * с);
2) переместительный:
а + b = b + а;
а * b = b * а;
3) распределительный:
а* (b + с) = a * b + а* с;
а+ b * с= а * b + а* с.
Справедливы соотношения:
a+a=a; a+b=b, если а≤b;
a*a=a; a*b=a,если a≤b;
a+a*b=a; a+b=b,если a≥b
a+b=a, если а≥b; и др.
Наименьшим элементом алгебры логики является 0, наибольшим элементом-1.
В алгебре логики также вводится еще одна операция- операция отрицания (иначе, операция НЕ, операция инверсии), обозначаемая чертой над элементом.
По определению: a+ā=1,a* ā=0, 0=1, 1=0.
Справедливы, например, такие соотношения: а=а, a+b=а*b, a*b=а+b.
Функция в алгебре логики это алгебраическое выражение, содержащее элементы алгебры логики а, b, с ..., связанные между собой операциями, определенными в этой алгебре.
Пример 4.12. Примеры логическихфункций.
f(a,b,c) = ā + a*b*ń + a+c;
f(a,b,c) = a*b + а*с +a*b*c
Согласно теоремам разложения функций на конституэнты (составляющие) любая функция может быть разложена на конституэнты "1":
f(a)=f(1)*a+f(0)* ā;
f(a,b)=f(1,b)*a+f(0,b)*ā=f(1,1)*a*a+f(1,0)*a*b+f(0,1)*ā*b+f(0,0)*ā*b, (2)
и т.д.
Эти соотношения используются для синтеза логических функций и вычислительных схем.
Логический синтез вычислительных схем
Рассмотрим логический синтез (создание) вычислительных схем на примере одноразрядного двоичного сумматора, имеющего два входа ("а" и "b") и два выхода ("S" и "Р") и выполняющего операцию сложения в соответствии с заданной таблицей:
A |
B |
f1(a,b)=S |
f2(a,b)=P |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
где f1(a,b)=S - значение цифры суммы в данном разряде;
f2(a,b)=P - цифра переноса в следующий (старший) разряд.
Согласно соотношению (2), можно записать:
S=f1(a,b)=0*a*b+ 1* ā *b+ 1*a*b +0* ā *b= ā *b+ ą*b;
Р =f2(a,b) = 1 *a*b + 0* ā *b + 0*a*b + 0* ā* b = a*b.
Логическая схема сумматора, реализующего полученную функцию, представлена на рис. 4.1.
Здесь изображены логические блоки в соответствии с международным стандартом:
схема ИЛИ, реализующая
операцию логического сложения
схема И, реализующая операцию
логического умножения
схема НЕ, реализующая
операцию инверсии
Примечания: 1. В ряде случаев перед построением логической схемы устройства по логической функции последнюю, пользуясь соотношениями алгебры логики следует преобразовать к более простому виду (минимизировать).
2. Для логических схем ИЛИ, И и НЕ существуют типовые технические схемы, реализующие их на реле, электронных лампах, дискретных полупроводниковых элементах. Для построения современных ЭВМ обычно применяются системы интегральных элементов, у которых с целью большей унификации в качестве базовой логической схемы используется всего одна из схем: И НЕ (штрих Шеффера), ИЛИ НЕ (стрелка Пирса) или И ИЛИ НЕ.
Структура и виды команд
Решение задач на ЭВМ реализуется программным способом, т. е.путем выполнения последовательно во времени отдельных операций над информацией, предусмотренных алгоритмом решения задачи.
Алгоритм - это точно определенная последовательность действий, которые необходимо выполнить над исходной информацией, чтобы получить решение задачи.
Алгоритм решения задачи, заданный в виде последовательности команд на языке вычислительной машины (в кодах машины), называется машинной программой.
Команда машинной программы (иначе, машинная команда) - это элементарная инструкция машине, выполняемая ею автоматически безкаких-либо дополнительных указаний и пояснений.
Машинная команда состоит из двух частей: операционной и адресной.
Операционная часть команды это группа разрядов в команде, предназначенная для представления кода операции машины.
Адресная часть команды это группа разрядов в команде, в которых записываются коды адреса (адресов) ячеек памяти машины, предназначенных для оперативного хранения информации, или иных объектов, задействованных при выполнении команды. Часто эти адреса называются адресами операндов, т.е. чисел, участвующих в операции.
По количеству адресов, записываемых в команде, команды делятсяна безадресные, одно-, двух- и трехадресные.
Типовая структура трехадресной команды:
КОП |
а1 |
а2 |
а3 |
где КОП -код операции;
а1 и а2 - адреса ячеек (регистров), где расположены соответственно первое и второе числа, участвующие в операции;
а3 - адрес ячейки (регистра), куда следует поместить число, полученное в результате выполнения операции.
Типовая структура двухадресной команды:
КОП |
а1 |
а2 |
где a1 - это обычно адрес ячейки (регистра), где хранится первое из чисел, участвующих в операции, и куда после завершения операции должен быть записан результат операции;
а2 -обычно адрес ячейки (регистра), где хранится второе участвующее в операции число.
Типовая структура одноадресной команды:
КОП |
а1 |
где a1 в зависимости от модификации команды может обозначать либо адрес ячейки (регистра), где хранится одно из чисел, участвующих в операции, либо адрес ячейки (регистра ), куда следует поместить число результат операции.
Безадресная команда содержит только код операции, а информация для нее должна быть заранее помещена в определенные регистры машины (безадресные команды могут использоваться только совместно с командами другой адресности).
Пример 4.13. Поступила представленная на языке символического кодирования команда:
СЛ |
0103 |
5102 |
Такую команду следует расшифровать так: "сложить число, записанное в ячейке 0103 памяти, с числом, записанным в ячейке 5102, а затем результат (т.е. сумму) поместить в ячейку 0103".
Примечание. В кодах машины такая команда содержит только двоичные цифры записанных выше объектов.
Состав машинных команд
Современные ЭВМ автоматически выполняют несколько сотен различных команд. Например, стандартный набор современных ПК содержит около 240 машинных команд. Все машинные команды можно разделить на группы по видам выполняемых операций:
Пояснения требуют операции передачи управления (иначе ветвления программы), которые служат для изменения естественного порядка выполнения команд. Бывают операции безусловной передачи управления и операции условной передачи управления.
Операции безусловной передачи управления требуют выполнения после данной команды не следующей по порядку, а той, адрес которой в явном или неявном виде указан в адресной части.
Операции условной передачи управления требуют тоже передачи управления по адресу, указанному в адресной части команды, но только в том случае, если выполняется некоторое заранее оговоренное для этой команды условие. Это условие в явном или неявном виде указано в коде операции.
ВВЕРХ![]() |
|
![]() |
![]() |
![]() |