Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы по информатике.docx
Скачиваний:
44
Добавлен:
10.05.2015
Размер:
150.08 Кб
Скачать

История разработки микропроцессоров

№№

п/п

Год выпуска

Наименование

Краткая характеристика

1

1974

i8080

8-ми разрядный. Тактовая частота 8Mгц. 6 мкм технология

2

1978

i8086

16-ми разрядный.

3

1982

i8286

16-ми разрядный. Защищенный режим.

4

1982

i8287

Математический сопроцессор

5

1985

i8386

32-х разрядный

6

1985

i8387

Математический сопроцессор

7

1989

i8486

32-х разрядный. Встроенный математический сопроцессор

8

1993

Pentium

32-х разрядный . 64-х разрядная шина данных. Тактовая частота 3500 Mгц.

Суперскалярная архитектура

9

1997

Pentium MMX

Технология MMXпозволяет реализовать ЭВМ с одиночным потоком инструкций и множественным потоком данных (SIMD).

0,35 мкм технология

Функции

Fip – функция счетчика инструкций

Fdec– функция декодирования инструкций

Fор– функция выполнения инструкций

Fam– функция реализации режимов адресации

Frs - функция регистрового файла

Fcc - функция преобразования адресов команд из виртуальных в физические

Fcd - функция преобразования адресов из виртуальных в физические.

Действия над двоичными числами

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

Беззнаковые числа. Диапазоны:

Байт (8бит) 0 – 255,

Слово (2байта 16бит) – 0- 65535

Двойное слово (4байта - 32бита) 0- 232-1

Номер

бита

0

1

2

3

4

5

6

7

Значение

128

64

32

16

8

4

2

1

Шестнадцатиричное представление

Двоичное представление тетрады

Шестнадцатиричное представление тетрады

0000

0

0001

1

0010

2

0011

3

0100

4

0101

5

0110

6

0111

7

1000

8

1001

9

1010

A

1011

B

1100

C

1101

D

1110

E

1111

F

Пример записи слов

0AC1, 8D5F

Знаковые числа. Старший бит – 1 признак отрицательного числа (0 – положительное число,1 – отрицательное число) .

Диапазон:

Байт (8бит) -128- +127

Слово (2байта 16бит) –32768-+32767

Двойное слово (4байта - -231 -231-1

Знаковые числа образуется с помощью дополнительного кода.

Дополнительный код формируется из обратного кода добавлением 1.

Пояснение

Число

Прямой

код

Обратный

код

Дополнительный

код

-3       

10000011

11111100

11111101

Представляем 11111101 как беззнаковое

11111101 – число 253

128+64+32+16+8+4+1

128+64= 192: 192+32=224: 224+16= 240: 240+8= 248: 248+4= 252: 252+1= 253

Команды двоичной арифметики

Команды сложения и вычитания

CЛОЖЕНИЕ

Правила сложения в МП 80х86

add op1,op2 ; складывает два операнда и сумму записывает на место первого операнда

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

Например

1. 5+11 = 16– формат – байт

00000101

+

00001011

=

00010000

2.192+ 64 = 278>255 192=128+64

1100 0000

+

0100 0000

=

0000 0000 и флаг С=1!

Сложение знаковых чисел

3. -3+1=-2

Складываем их как беззнаковые 253+1=254 , а это есть представление -2 в дополнительном коде

Пояснение:

Представляем знаковое число -3 в дополнительном коде

-3 - 11111101

А 1 - в прямом коде 0000 0001

Складываем и получаем 11111110

Прямой код

Обратный код

Дополнительный

код

-2       

10000010

11111101

11111110

11111110 – число 254

128+64+32+16+8+4+2

128+64= 192: 192+32=224: 224+16= 240: 240+8= 248: 248+4= 252: 252+2= 254

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

При вычислении результат может трактоваться по разному. Знаковые числа имеют диапазон от -127 до +127. Беззнаковые – от 0 до 255. Поэтому переполнение разрядной сетки может трактовать только программист. Он должен знать, какие числа он складывает и как понимать флаг переполнения OF. Если числа знаковые, то флаг OF (over flow) – настоящее переполнение.

Как процессор (железо) может понять, что число отрицательное? Программист пишет число (-100), а транслятор ассемблера преобразует это число в дополнительный код. Микропроцессор не знает, с каким код он работает, с прямым или дополнительным.

Вычитание

Вычитается из первого операнда второй операнд и разность записывает на место первого операнда

sub op1,op2

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

Например

1.64(0100 0000) - 32 (0010 0000)

0100 0000

-

0010 0000

=

0010 0000 - 32

2. 32 (0010 0000) -64(0100 0000)

0010 0000

-

0100 0000

= 1110 0000 CF=1!

Вычитание знаковых чисел. Например -3-1=-4

Представляем знаковое число -3 в дополнительном коде

-3 - 11111101– число 253

253-1= 252

Прямой код

Обратный код

Дополнительный

код

-4       

10000100

11111011

11111100

128+64+32+16+8+4+1= 253

253-1=252

128+64+32+16+8+4 =252, то есть -4 в дополнительном коде!

Операции с различными форматами данных в МП Intel

Операнд 1

Операнд 2

Примечание

r8

i8,r8,m8

Cложение/ Вычитание

байтов

m8

i8,r8

r16

i16,r16,m16

Cложение/ Вычитание

слов

m16

i16,r16

r32

i32,r32,m32

Cложение/ Вычитание

двойных слов

m32

i32,r32

Примечание iX – непосредственный операнд (задается в коде команды), rX – регистр, название которого задается в коде команды

mX – адрес оперативной памяти (задается в коде команды).

Ассемблер

Директивы определения данных

Директива DB - определить байт

Примеры

X DB ? – зарезервирована память за переменной Х в 1 байт

A DB 02– зарезервирована память за переменной A = 02 в 1 байт

B DB FFh– зарезервирована память за переменной B = FF в 1 байт

C DB -64– зарезервирована память за переменной C= -64 в 1 байт

Резервирование массива директивой DUP. Пример обнуление 100 байтов

R DB 100 DUP(0)

Определение массива

N DB 02

DB -2

DB 12h

DB ?

Директива DW - определить слово (16 бит)

A DW ? – зарезервирована память за переменной A в 1 слово

Директива DD - определить двойное слово (32 бита)

B DD 123456h – зарезервирована память за переменной B= 123456h в 2 слова

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

z DB 02

w DW 0Fh

y DD 0F12h

add ah,12 ; ah:= ah+12: r8+i8

add ah,bl : r8+r8

add w + ax; m16+r16

sub si,z : si:= si- z ; r8+m8

add z-200 : z:= z+(-200) ; m8-i8

Булева алгебра получила название по имени ее изобретателя Дж. Буля. Операции в булевой алгебре продуманы таким образом, чтобы их можно было использовать в логических рассуждениях. В ней два объекта два высказывания) интерпретируются как истина (будем обозначать как true -1) и ложь (будем обозначать как false- 0). Далее мы будем называть символы true и false булевыми величинами, а переменные, которые их обозначают - булевыми переменными. В булевой алгебре рассматриваются только те высказывания, для которых истинность может принимать два значения: либо истина (true), либо ложь (false). Результат над булевыми переменными тоже может принимать только два значения – истина (1) или ложь (0).

Основные булевы функции. ¬ˆˇ

  1. Функция И (AND) . Результаты выполнения булевых функций удобно представить в таблицах истинности. Такая таблица для функции И для двух переменных c = аˆ b или c = а&b или c = а b. Операция конънкция

    a

    b

    c

    0

    0

    0

    0

    1

    0

    1

    0

    0

    1

    1

    1

  2. Функция ИЛИ (OR) . Таблица истинности для функции ИЛИ для двух переменных c = аˇ b или + Операция дизънкция

    a

    b

    c

    0

    0

    0

    0

    1

    1

    1

    0

    1

    1

    1

    1

  3. Функция НЕ (NOT) . Таблица истинности для функции НЕ

C= ¬a

a=1, c=0. a=0, c=1.

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

4 Удобно использовать еще одну булеву функцию – сумму по модулю 2 (исключающую ИЛИ –XOR). Таблица истинности для функции ИЛИ для двух переменных c = а® b

a

b

c

0

0

0

0

1

1

1

0

1

1

1

0

2. Главные правила и теоремы булевой алгебры.

Операции с 0 и 1.

av0=a.av1=1aˆ0=0.aˆ1=a

Операции с одной переменной

ava=a,aˆa=a¬ (a)=a

av(¬a)=1,aˆ(¬a)=0

Старшинство выполнения операций как и при арифметическом сложении и умножении.

Пример d=cvaˆb. Порядок действий:d=aˆbvc. Чтобы изменить порядок действий, применяются скобкиd=(cva)ˆb

Коммутативность

avb=bva,aˆb=bˆa

Ассоциативность

(avb)vc=av(bvc)=avbvc

(aˆb)ˆc=aˆ(bˆc)=aˆbˆc

Дистрибутивность

aˆ(bvc)=aˆbvaˆc

av(bˆc) = (avb) ˆ(avc)

Теоремы упрощения выражений

  1. aˆbvaˆ¬b=a– проверяется по таблице истинности. Один из термов ( членов конъюнкции) обязательно равен 0, так как либоb=0, либо ¬b. Остается либо термaˆb, либо термaˆ¬b, то есть терм, в которомbили ¬bравен 1, а ранее было показано, чтоaˆ1=a. То есть остается 0v(aˆ1) =a

  2. (avb) ˆ (av¬b)=a- одна из дизънкций обязательно равна 1, а именно та, в которойbили ¬b= 1. Значит при упрощении получаем 1ˆ(av0)=a.

  3. avaˆ b=a - если b=0. то av0=a; если b=1. то ava=a

  4. aˆ (avb)= a - если b=0. то aˆa=a; если b=1. то aˆ1=a

  5. (av¬b) ˆb=aˆb- - еслиb=0, то результат равен 0, еслиb=1. тоaˆ1=a

  6. (aˆb)vb=avb- еслиb=0,то 0vb=b; еслиb=1. тоavb

  1. ругие (1):

  • .

  • .

  • .

  • .

  • , инволютивность отрицания, закон снятия двойного отрицания.

  • Другие (2):

    • .

    • .

    • .

    • .

  • Другие (3) (Дополнение законов де Мо́ргана):

    • .

    Таблица истинности для конънкции и дизънкции трех переменных.

    a

    b

    c

    И

    ИЛИ

    0

    0

    0

    0

    0

    0

    0

    1

    0

    1

    0

    1

    0

    0

    1

    0

    1

    1

    0

    1

    1

    0

    0

    0

    1

    1

    0

    1

    0

    1

    1

    1

    0

    0

    1

    1

    1

    1

    1

    1

    Теорема де Моргана

    C=¬(avb) = ¬aˆ¬b

    a

    b

    ¬(avb)

    ¬aˆ¬b

    0

    0

    1

    1

    0

    1

    0

    0

    1

    0

    0

    0

    1

    1

    0

    0

    ¬ (aˆb) = ¬av¬b

    a

    b

    ¬ (aˆb)

    ¬av¬b

    0

    0

    1

    1

    0

    1

    0

    0

    1

    0

    0

    0

    1

    1

    0

    0

    Регистры микропроцессора

    Пользовательские регистры:

    1. Регистры общего назначения (РОН)

    А) 8 8-ми разрядных регистра

    AH, AL, BH, BL, CH, CL, DH, DL

    B) 8 16-ти разрядных регистра

    AX, BX, CX, DX. BP, SP, SI, DI

    AX BX CX DX

    AH, AL BH, BL CH, CL DH, DL

    C)8 32-разрядных регистра имеют тоже наименование, что и 16-разрядные регистры, только перед наименованием регистра имеется буква Е. Например EAX, ECX. Старшие половины этих регистров адресовать нельзя.

    EAX

    Ст. пол. AH, AL

    Регистр ESP (SP) используется в качестве указателя вершины стека. Регистры SI, DI используется для индексации обращения к массивам данных.

    1. Сегментные регистры

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

    A) Сегментный регистр кода CS определяет сегмент, который содержит набор команд, образующих собственно программу.

    B) Сегментный регистр стека SS определяет текущий сегмент стека, т.е. ту область памяти, в которой выполняются все стековые операции.

    C) Сегментный регистр данных DS определяет сегмент, который содержит все данные, относящиеся к выполняемой программе. Дополнительные сегментные регистры ES, FS и GS предназначены для задания еще трех сегментов данных, которыми может пользоваться выполняемая программа.

    D) Регистр указателя команд EIP/IP предназначен для адресации команд внутри текущего сегмента кода.