Содержание
-
Лекция 5.Язык программирования - ассемблер. Логические основы компьютера
-
Булева алгебра
Виды логических операций Для логических величин обычно используются три операции: Конъюнкция – логическое умножение (И) – and, &, . Дизъюнкция – логическое сложение (ИЛИ) – or, |, V. Унарная операция – логическое отрицание (НЕ) – not, ¬. V
-
Основные аксиомы Булевой алгеброй называется непустое множество A с двумя бинарными операциями - конъюнкцией и дизъюнкцией, а также унарной операцией и двумя выделенными элементами: 0 (или Ложь) и 1 (или Истина) такими, что для всех a, b и c из множества A верны следующие аксиомы:
-
Основные свойства
Для всех a и b из множества A верны следующие равенства:
-
Самая простая нетривиальная булева алгебра содержит всего два элемента, 0 и 1, а действия в ней определяются следующей таблицей: Конъюнкция Дизъюнкция Унарная операция Таблицы истинности:
-
Логические элементы
Вентиль - это устройство, которое выдает результат булевой операции от введенных в него данных (сигналов). Простейший вентиль представляет собой транзисторный инвертор, который преобразует низкое напряжение в высокое или наоборот. Это можно представить как преобразование логического нуля в логическую единицу или наоборот. Т.е. получаем вентиль НЕ. Соединив пару транзисторов различным способом, получают вентили ИЛИ-НЕ и И-НЕ. Эти вентили принимают уже не один, а два и более входных сигнала. Выходной сигнал всегда один и зависит (выдает высокое или низкое напряжение) от входных сигналов. В случае вентиля ИЛИ-НЕ получить высокое напряжение (логическую единицу) можно только при условии низкого напряжении на всех входах. В случае вентиля И-НЕ логическая единица получается, если все входные сигналы или хотя бы один из них будут нулевыми. Транзистору требуется очень мало времени для переключения из одного состояния в другое (время переключения оценивается в наносекундах). И в этом одно из существенных преимуществ схем, построенных на их основе.
-
Другие логические элементы: Сумматор Полусумматор Триггер Триггеры и сумматоры – это относительно сложные устройства, состоящие из более простых элементов – вентилей. Триггер способен хранить один двоичный разряд, за счет того, что может находиться в двух устойчивых состояниях. В основном триггеры используется в регистрах процессора. Сумматоры широко используются в арифметико-логических устройствах (АЛУ) процессора и выполняют суммирование двоичных разрядов.
-
Битовые операции 1. Переведем пару произвольных целых чисел до 256 (один байт) в двоичное представление. 2. Расположим биты второго числа под соответствующими битами первого и выполним обычные логические операции к цифрам, стоящим в одинаковых разрядах первого и второго числа. 3. Переведем результат в десятичную систему счисления. 4. В результате побитовых логических операций получилось следующее:
-
Назначение побитовых логических операций
Проверка битов Другими словами, x and 255 = x. Обнуление битов Чтобы обнулить какой-либо бит числа, нужно его логически умножить на 0. Установка битов в единицу Т.е. чтобы обнулить четвертый с конца бит числа x, надо его логически умножить на 247 или на (255 - 23). Для установки битов в единицу используется побитовая логическая операция ИЛИ. Чтобы установить второй по старшинству бит числа x в единицу, надо его логически сложить с 64 (x or 64).
-
Язык программирования АССЕМБЛЕР
Assembler — язык программирования низкого уровня, представляющий собой формат записи машинных команд, удобный для восприятия человеком. Команды языка ассемблера один в один соответствуют командам процессора и, фактически, представляют собой удобную символьную форму записи (мнемокод) команд и их аргументов. Также язык ассемблера обеспечивает базовые программные абстракции: связывание частей программы и данных через метки с символьными именами и директивы.
-
Представление данных в компьютере 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 байт Машинное слово Двойное машинное слово - 32 бита (4 байта) Директивы ассемблера позволяют включать в программу блоки данных (описанные явно или считанные из файла); повторить определённый фрагмент указанное число раз; компилировать фрагмент по условию; задавать адрес исполнения фрагмента, менять значения меток в процессе компиляции; использовать макроопределения с параметрами и др. Каждая модель процессора, в принципе, имеет свой набор команд и соответствующий ему язык (или диалект) ассемблера.
-
Системы счисления В позиционных системах счисления, к которым относятся и широко распространенная десятичная система, числовое значение цифры зависит от ее местоположения или позиции в последовательности цифр изображающих число. Единственной, дошедшей до нашего времени, системой, не относящейся к позиционной системе счисления, является римская система счисления. Любое число в позиционной системе счисления изображается последовательностью цифр: Х = аn-1 an-2…a1a0 , где ai є{0,1,…,q-1}, q – основание системы счисления.
-
Перевод чисел из одной системы счисления в другую
-
Регистры общего назначения Аккумулятор Базовый регистр Регистр-счетчик Регистр данных Индекс источника Индекс приемника Указатель стека Указатель базы
-
Общепринятого стандарта для синтаксиса языков ассемблера не существует. Однако, существуют стандарты де-факто — традиционные подходы, которых придерживаются большинство разработчиков языков ассемблера. Основными такими стандартами являются Intel-синтаксис и AT&T-синтаксис. Общий формат записи инструкций одинаков для обоих стандартов: `[метка:] опкод [операнды] [;комментарий]` Опкод — непосредственно мнемоника инструкции процессору. К ней могут быть добавлены префиксы (повторения, изменения типа адресации и пр.). В качестве операндов могут выступать константы, названия регистров, адреса в оперативной памяти и пр.. Различия между стандартами Intel и AT&T касаются, в основном, порядка перечисления операндов и их синтаксиса при различных методах адресации. Синтаксис языка ассемблер
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.