Главная страница Комод Кухня Компьютерный стол Плетеная мебель Японский стиль Литература
Главная  Кремниевые микросхемы 

1 2 3 4 5 6 7 8 [ 9 ] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

жений дйух Чисел В машинных кодах (на языке машины) выглядит следующим образом:

Адрес в памяти, на который имеется указа-

Двоичный код операдии . команде

1010 1101 ОНО оно 0000 0000

ООН 1100 1100 1011 0000 оооо

1000 1101 оно 0101 0000 0000

0000 0000

Каждая строчка, т. е. код операции и адрес, на который имеется ссылка (если он имеется), называется командой.

Коды операций, используемые в данном примере, - это коды микропроцессора модели 6502. Его команда сложения имеет смысл сложить с учетом переноса и требует, чтобы отсутствовали переносы от предыдущих вычислений (флаги переносов были чистыми), прежде чем команда сложения начнет выполняться [смысл понятия флаг переноса будет уточнен позже (см. гл. 5)]. Для простоты в приведенном выше примере предыдущие переносы не рассматривались, но в дальнейшем о них будет сказано подробнее. В некоторых микропроцессорах имеется, кроме того, отдельная команда СЛОЖИТЬ БЕЗ ПЕРЕНОСА, и в этом случае флаг переноса не нужно очищать перед ее применением. В примерах, приведенных в этой главе, будем пользоваться командой СЛОЖИТЬ С УЧЕТОМ ПЕРЕНОСА, а в следующей главе покажем, как можно пользоваться этими двумя типами команд, если они предусмотрены в микропроцессоре.

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

Краткие выводы

Язык высокого уровня (С=А-{-В)->-программа компилятор -> машинный язык ->- микропроцессор - в 5 раз быстрее, чем

Язык ассемблера (символический)->-программа ассемблера-машинный язык-> микропроцессор- в 10 раз быстрее, чем



ШecтнaдцaтetJИ'чнoe программирование (FF и т. д.)

прОЕрамма монитормашинный язык- микропроцессор - в 4 раза быстрее, чем

Двоичный машинный язык (0010 и т. д.) -> программа загрузчик- микропроцессор.

Нетрудно заметить, что программирование на языке высокого уровня дает почти 5-кратное повышение скорости составления программы по сравнению с программированием на языке ассемблера, или (бХЮ) 50-кратное повышение скорости по сравнению с программированием в шестнадцатеричном коде, или (5X10X4) 200-кратное повышение скорости по сравнению с программированием на языке машины.

Зачем нужны команды в машинном коде?

Как было показано ранее, аппаратное обеспечение по существу действительно очень простое, поскольку построено на базе множества ключей (переключателей), которые могут находиться только в двух электрических состояниях: ВКЛЮЧЕН и ВЫКЛЮЧЕН. Было бы очень сложно сконструировать надежн>ю электрическую систему, способную четко идентифицировать любой из 10 уровней напряжения, используемых для представления десятичных чисел, количественный эквивалент которых выражается с помощью цифр от G до 9 в обычной десятичной системе счисления. Поэтому программное обеспечение призвано свести любую задачу к последовательностям выполнения операций ВКЛЮЧЕНО и ВЫКЛЮЧЕНО, требующим для соответствующего представления только двух цифр (обычно О для ВЫКЛЮЧЕНО и 1 для ВКЛЮЧЕНО).

Микропроцессор производит вычисления неуклюжим , с точки зрения человека, способом, а именно, с использованием двоичной системы счисления. Основанием двоичной системы счисления является 2 вместо 10 в обычной системе. Это означает, что перенос в следующий (старший) разряд числа необходимо выполнять, когда значение в данном разряде достигнет 2, так же как в десятичной системе счисления единица переносится в следующий слева разряд каждый раз, когда значение разряда достигнет 10.

Так, начиная с нуля и увеличивая каждый раз значение количественного эквивалента двоичного числа на



единицу, можно получить следующую последовательность двоичных чисел:

Начало 0000

Прибавление первой единицы даст 0001

При прибавлении следующей единицы необходимо сделать перенос, что даст 0010

Прибавление следующей единицы даст 0011

При прибавлении следующей единицы снова необходимо сделать перенос во второй разряд (столбец) и еще один перенос в следующий разряд, что даст 0100

И Т. Д. Двоичные числа от О до 15 вместе с соответствующими десятичными числами представлены ниже

Десятич-

Двоичное

Десятичное

Двоичное

ное число

число

число

число

0000

1000

0001

1001

0010

1010

ООН

1011

010)

1100

0101

1101

оно

1110

0111

1111

Заметим, что каждая двоичная цифра (двоичный разряд, или бит - bit) представляет собой целую степень двойки. Самая правая цифра (самый младший двоичный разряд) представляет собой 2 = 1, следующая цифра 2 = 2, далее: 2=4, 2=8, 24=16, 2 = 32, 28=64, 2= 128 и т. д.

Так, число 1101 в двоичной системе счисления соответствует десятичному числу 13. Покажем это:

веса разрядов: 8421 двоичное число: 1101 Таким образом, имеем:

одну цифру 8: 1-8=8

одну цифру 4: 1-4 = 4

ни одной цифры 2: 0-2 = 0

одну цифру 1: 1-1 = 1

что и составляет число 13 в десятичной системе счисления.

Аналогично для числа 01100010:

веса разрядов 128 64 32 16 8 4 2 1

двоичное чпсло О 1 1 0 0 0 10

2-979 33



1 2 3 4 5 6 7 8 [ 9 ] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

© 2007 EPM-IBF.RU
Копирование материалов разрешено в случае наличия письменного разрешения