
- •Определение и свойства позиционной системы счисления.
- •Алгоритмы перевода чисел из систем с основанием 2, 8 и 16 в десятичную систему.
- •Алгоритмы перевода чисел из десятичной системы в системы с основанием 2, 8 и 16.
- •Описание файла листинга и счетчик размещения.
- •Оперативная память, ее адресное пространство, операции чтения и записи.
- •Методы хранения и доступа к словам и двойным словам - littlendian и bigendian.
- •Знаковые и беззнаковые целые, их сравнение и команды арифметики для них.
- •Директивы определения данных в языке ассемблера.
- •Д ополнительный код и его свойства.
- •Регистр флагов, его назначение и использование.
- •Переполнение, общие положения. Беззнаковое переполнение. Переполнение, общие положения. Знаковое переполнение.
- •Команда cmp и семейство команд Jcc, их использование.
- •Адресный доступ к памяти, операнды источники и приемники, характеризация операндов.
- •Перемещение (исполнительный адрес) операнда в памяти, определение и преимущества базово-индексной адресации.
- •Общая формула режимов адресации, преимущества базово-индексной адресации.
- •25. Стековый доступ к памяти.
Методы хранения и доступа к словам и двойным словам - littlendian и bigendian.
Информация представляется в виде последовательности байтов. Если число не может быть представлено одним байтом, имеет значение порядок записи байт в памяти компьютера или передачи их по линиям связи.
Набор
целых чисел
,
каждое из которых лежит в интервале от
0 до 255, является последовательностью
байтов, составляющих M.
При этом
называется младшим
байтом, а
— старшим
байтом числа M.
Big-endian (с большего конца) - Порядок от старшего к младшему: Привычный порядок записи чисел слева-направо - стандарт для записи байтов в технической и учебной литературе, если явно не задан другой.
Удобство: Сравнение строк с помощью целочисленных полей.
Примеры: TCP/IP, заголовки пакетов данных в более высоких протоколах, разработанных для использования поверх TCP/IP; Процессоры IBM 360/370/390, SPARC, Motorola 68000; форматы PNG, FLV, EBML, JPEG.
Little-endian (с меньшего конца) - Порядок от младшего к старшему: Обратный привычному – справа-налево.
Примеры: Память ПК с x86 ЦП; архитектуры VAX, DEC Alpha; Интерфейсы USB, PCI; Таблица разделов GUID.
Удобство: Работа с несколькими операндами.
Регистры eax, ebx, ecx, edx и их специальные свойства.
Регистры общего назначения – 32битные регистры, где можно хранить любую информацию. Исторически сложилось, что:
EAX – Аккумулятор
EBX – База
ECX – Счётчик
EDX – Данные
Можно вызвать только младшие разряды:
AX
BX
CX
DX
И внутри них ещё - старший и младший:
AH, AL
BH, BL
CH, CL
DH, DL
Регистры esp, ebp, eip и их специальные свойства.
Регистры общего назначения – 32битные регистры, где хранят более конкретные значения:
EBP – Базовый указатель стека (начало текущего блок-кода)
ESP – Указатель стека (вершина стека)
EIP – Указатель следующей инструкции
Можно вызвать только младшие разряды:
BP
SP
SI
Системные вызовы. Назначение, описание, пример.
Системные вызовы - это вызовы функций операционной системы, которые позволяют программе взаимодействовать с ресурсами компьютера, такими как файлы, сетевые соединения, процессы и т.д.
Для выполнения системного вызова используется специальная инструкция int, которая передает управление ядру операционной системы. Примеры системных вызовов: чтение/запись в файл, создание процесса, и т.д.
Архитектурные типы данных. Диапазоны значений целых данных.
Архитектурные типы данных - это типы данных, которые поддерживаются архитектурой процессора. Некоторые из них:
Целочисленные: byte, word, dword, qword
С плавающей точкой: float, double
Символьные: char, string
Булевые: bool
Диапазоны значений целых данных зависят от их размера и знака. Пример: для unsigned byte диапазон значений составляет от 0 до 255, а для знакового byte - от -128 до 127.
Знаковые и беззнаковые целые, их сравнение и команды арифметики для них.
Беззнаковые данные используют все биты как биты данных. В знаковых данных самый левый бит представляет собой знак. Если его значение равно нулю, то число положительное, если единице - то отрицательное.
Для сравнения операндов используют команду CMP или CMPU, Для арифметики соответственно ADD и ADDU.