Лекция 5. Язык программирования - ассемблер. Логические основы компьютера

Содержание

Слайд 2

Булева алгебра Виды логических операций Для логических величин обычно используются три

Булева алгебра

Виды логических операций

Для логических величин обычно используются три операции:

Конъюнкция – логическое умножение (И) – and, &, .
Дизъюнкция – логическое сложение (ИЛИ) – or, |, V.
Унарная операция – логическое отрицание (НЕ) – not, ¬.

V

Слайд 3

Основные аксиомы Булевой алгеброй называется непустое множество A с двумя бинарными

Основные аксиомы

Булевой алгеброй называется непустое множество A с двумя бинарными

операциями - конъюнкцией и дизъюнкцией, а также унарной операцией и двумя выделенными элементами: 0 (или Ложь) и 1 (или Истина) такими, что для всех a, b и c из множества A верны следующие аксиомы:
Слайд 4

Основные свойства Для всех a и b из множества A верны следующие равенства:

Основные свойства

Для всех a и b из множества A верны следующие

равенства:
Слайд 5

Основные свойства Самая простая нетривиальная булева алгебра содержит всего два элемента,

Основные свойства

Самая простая нетривиальная булева алгебра содержит всего два элемента,

0 и 1, а действия в ней определяются следующей таблицей:

Конъюнкция

Дизъюнкция

Унарная операция

Таблицы истинности:

Слайд 6

Логические элементы Вентиль - это устройство, которое выдает результат булевой операции

Логические элементы

Вентиль - это устройство, которое выдает результат булевой операции

от введенных в него данных (сигналов).

Простейший вентиль представляет собой транзисторный инвертор, который преобразует низкое напряжение в высокое или наоборот. Это можно представить как преобразование логического нуля в логическую единицу или наоборот. Т.е. получаем вентиль НЕ.
Соединив пару транзисторов различным способом, получают вентили ИЛИ-НЕ и И-НЕ. Эти вентили принимают уже не один, а два и более входных сигнала. Выходной сигнал всегда один и зависит (выдает высокое или низкое напряжение) от входных сигналов.
В случае вентиля ИЛИ-НЕ получить высокое напряжение (логическую единицу) можно только при условии низкого напряжении на всех входах.
В случае вентиля И-НЕ логическая единица получается, если все входные сигналы или хотя бы один из них будут нулевыми.
Транзистору требуется очень мало времени для переключения из одного состояния в другое (время переключения оценивается в наносекундах). И в этом одно из существенных преимуществ схем, построенных на их основе.

Слайд 7

Логические элементы Другие логические элементы: Сумматор Полусумматор Триггер Триггеры и сумматоры

Логические элементы

Другие логические элементы:
Сумматор
Полусумматор
Триггер

Триггеры и сумматоры –

это относительно сложные устройства, состоящие из более простых элементов – вентилей.
Триггер способен хранить один двоичный разряд, за счет того, что может находиться в двух устойчивых состояниях. В основном триггеры используется в регистрах процессора.
Сумматоры широко используются в арифметико-логических устройствах (АЛУ) процессора и выполняют суммирование двоичных разрядов.
Слайд 8

Битовые операции 1. Переведем пару произвольных целых чисел до 256 (один

Битовые операции

1. Переведем пару произвольных целых чисел до 256 (один байт)

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

2. Расположим биты второго числа под соответствующими битами первого и выполним обычные логические операции к цифрам, стоящим в одинаковых разрядах первого и второго числа.

3. Переведем результат в десятичную систему счисления.

4. В результате побитовых логических операций получилось следующее:

Слайд 9

Назначение побитовых логических операций Проверка битов Другими словами, x and 255

Назначение побитовых логических операций

Проверка битов

Другими словами, x and 255 = x.

Обнуление

битов

Чтобы обнулить какой-либо бит числа, нужно его логически умножить на 0.

Установка битов в единицу

Т.е. чтобы обнулить четвертый с конца бит числа x, надо его логически умножить на 247 или на (255 - 23).

Для установки битов в единицу используется побитовая логическая операция ИЛИ.

Чтобы установить второй по старшинству бит числа x в единицу, надо его логически сложить с 64 (x or 64).

Слайд 10

Assembler — язык программирования низкого уровня, представляющий собой формат записи машинных

Assembler — язык программирования низкого уровня, представляющий собой формат записи машинных

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

Язык программирования АССЕМБЛЕР

Слайд 11

Представление данных в компьютере 15 14 13 12 11 10 9

Представление данных в компьютере

15 14 13 12 11 10 9

8 7 6 5 4 3 2 1 0

байт

Машинное слово

Двойное машинное слово - 32 бита (4 байта)

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

Слайд 12

Системы счисления В позиционных системах счисления, к которым относятся и широко

Системы счисления

В позиционных системах счисления, к которым относятся и широко распространенная

десятичная система, числовое значение цифры зависит от ее местоположения или позиции в последовательности цифр изображающих число.
Единственной, дошедшей до нашего времени, системой, не относящейся к позиционной системе счисления, является римская система счисления.
Любое число в позиционной системе счисления изображается последовательностью цифр:
Х = аn-1 an-2…a1a0 ,
где ai є{0,1,…,q-1}, q – основание системы счисления.
Слайд 13

Перевод чисел из одной системы счисления в другую

Перевод чисел из одной системы счисления в другую

Слайд 14

Регистры общего назначения Аккумулятор Базовый регистр Регистр-счетчик Регистр данных Индекс источника

Регистры общего назначения

Аккумулятор
Базовый регистр
Регистр-счетчик
Регистр данных
Индекс источника
Индекс приемника
Указатель стека
Указатель базы