МАШИННЫЙ ФОРМАТ ВЕЩЕСТВЕННЫХ ЧИСЕЛ ТИПА DOUBLE
На число отводится 64 разряда (8 байт)
На характеристику 11 разрядов (разряды с 51 по 62)
63 разряд - знаковый
111 1111 1111 -> 0011 1111 1111 -> 3FF
В мантиссе можно разместить 15-16 десятичных цифр
Пример: 0.05d-> 1.1(0011)*2^-5b
x=смещение+-порядок
3FF-5=3FA
Д\З расписать число 0.05d в 64 разрядах double
3FA9999h
Машинный формат вещественных чисел типа long double
80 разрядов (10 байт)
Мантисса не имеет скрытого разряда
на характеристику отводится 15 разрядов (78-64)
79 - знак
Х = 3FFF +- порядок
Д\З представить -117.25 в формате long double
C005 EA80 0000 0000 0000h
РЕГИСТРЫ ПРОЦЕССОРА И ОПЕРАТИВНАЯ ПАМЯТЬ IBM РС СОВМЕСТИМЫХ КОМПЬЮТЕРОВ
В любом случае когда программа выполняется она должна находиться в ОЗУ. Обмен данными между процессором и ОЗУ происходит по 2м путям:
1. Шина адреса
2. Шина данных
Данные поступающие в процессор обрабатываются в регистрах.
РЕГИСТРЫ ПРОЦЕССОРА
Регистры - один из видов памяти, они находятся в процессоре и являются самыми быстродействующей. Адресов у них нет, но есть имена.
|
|
Рассмотрим 14 базовых 16 разрядных регистров которые поддерживаются всеми моделями Intel процессоров.
Регистры общего назначения (РОН)
Являются основными рабочими регистрами ассемблерных программ, к ним можно адресоваться 1 словом или 1 байтом. Левый байт старший, правый младший.
high | low | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Регистр AX | Accumulator | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AH | AL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Регистр BX | Base Ragister | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BH | BL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Регистр CX | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CH | CL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DX | Data register | ||||||||||||||||||||
DH | DL | ||||||||||||||||||||
Каждый из этих четырех регистров может выполнять любые функции, но каждый из них имеет свои основные функции.
AX- Первичный аккумулятор, используется во всех операциях ввода\вывода, в некоторых операциях со строками и в арифметике.
|
|
BX- Базовый регистр, единственный регистр, который используется для индексной адресации памяти, может использоваться в арифметике.
CX- Счетчик. Управляет числом повторений циклов и операциями сдвига.
DX- Регистр данных. Используется для некоторых операций ввода\вывода в умножении и делении.
Любой из регистров может использоваться для сложения\вычитания 8 и 16 разрядных чисел.
СЕГМЕНТНЫЕ РЕГИСТРЫ (4)
Служат для хранения адреса сегмента программы.
CS -> Code Segment. Содержит начальный адрес сегмента кода.
DS -> Data Segment. Начальный адрес сегмента данных. Этот адрес + величина смещения определенная в команде указывает на ячейку в сегменте данных.
SS -> Stack Segment. Содержит начальный адрес этого сегмента.
ES -> Extra Segment. Регистр сегмента расширения(используется в некоторых операциях со строками)
РЕГИСТР УКАЗАТЕЛЯ КОМАНД (IP-Instruction Pointer)
Содержит смещение на команду которая должна быть выполнена в настоящий момент.
Совместно с регистром CS содержит адрес следующей выполняемой команды.
РЕГИСТР ФЛАГОВ (FLAGS)
Регистр флагов сигнализирует процессору о его состоянии или о том как выполнилась та или иная арифметическая или логическая команды. Имеет общее название "Флаги".
Разряды регистра флагов
OF | DF | IF | TF | SF | ZF | AF | PF | CF | |||||||||||||
000 - Резерв
Для программирования на ассемблере используются следующие флаги:
OF - Over Flow Flag (переполнение)
SF - Signum Flag. Содержит старший разряд результата выполнения арифметической команды.
ZF - Zero Flag. (Деление на ноль\ стремление к нулю).
CF - Carry Flag. (Флаг переноса). Содержит результат переноса из старшего разряда(арифметика) или последний разряд при сдвиге.