Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Биты, байты, слова, параграфыСтр 1 из 3Следующая ⇒ Биты, байты, слова, параграфы Представление информации Системы счисления Контрольные вопросы Биты, байты, слова, параграфы Компьютер работает в двоичной системе счисления — минимальным информационным элементом является бит, который может принимать значение 0 или 1. Этим значениям соответствуют различимые физические состояния ячейки, чаще всего — уровень напряжения (низкий или высокий). Биты организуются в более крупные образования — ячейки памяти и регистры. Каждая ячейка памяти (и каждый регистр) имеет свой адрес, однозначно ее идентифицирующий в определенной системе координат. Минимальной адресуемой (пересылаемой между компонентами компьютера) единицей информации является байт, состоящий, как правило, из 8 бит. Два байта со смежными адресами образуют слово (word) разрядностью 16 бит, два смежных слова — двойное слово (double word) разрядностью 32 бита, два смежных двойных слова — учетверенное слово (quad word) разрядностью 64 бита. Байт (8 бит) делится на пару тетрад (nibble): старшую тетраду — биты [7:4] и младшую тетраду — биты [3:0]. В двухбайтном слове принят LH-порядок следования байтов: адрес слова указывает на младший байт L (Low), а старший байт Н (High) размещается по адресу, большему на единицу. В двойном слове порядок аналогичен — адрес указывает на самый младший байт, после которого размещены следующие по старшинству. Этот порядок, называемый форматом Little Endian и естественный для процессоров Intel, применяется не во всех микропроцессорных семействах. В формате Big Endian адрес указывает на самый старший байт (двойного, учетверенного...) слова, остальные байты размещаются по нарастающим адресам. С несовпадением форматов представления приходится сталкиваться, например, при передаче информации между различными подсистемами (формат Big Endian используется в сетевых протоколах и шине FireWire). В технической документации, электрических схемах и текстах программ могут применяться разные способы представления чисел: ♦ Двоичные (binary) числа — каждая цифра отражает значение одного бита (0 или 1), старший бит всегда пишется слева, после числа ставится буква «b». Для удобства восприятия тетрады могут быть разделены пробелами, например, 1010 0101b. ♦ Шестнадцатеричные (hexadecimal) числа — каждая тетрада представляется одним символом 0...9, А, В,..., F. Обозначаться такое представление может по-разному, в данной книге используется только символ «h» после последней шестнадцатеричной цифры, например, A5h. В текстах программ это же число может обозначаться и как 0хА5, и как 0A5h, в зависимости от синтаксиса языка программирования. Незначащий ноль (0) добавляется слева от старшей шестнадцатеричной цифры, изображаемой буквой, чтобы различать числа и символические имена. ♦ Десятичные (decimal) числа — каждый байт (слово, двойное слово) представляется обычным числом, а признак десятичного представления (букву «d») обычно опускают. Байт из предыдущих примеров имеет десятичное значение 165. В отличие от двоичной и шестнадцатеричной форм записи, по десятичной трудно в уме определить значение каждого бита, что иногда приходится делать. ♦ Восьмеричные (octal) числа — каждая тройка битов (разделение начинается с младшего) записывается в виде цифры из интервала 0-7, в конце ставится признак «о». То же самое число записывается как 245о. Восьмеричная система неудобна тем, что байт не разделить поровну, но зато все цифры — привычные. В «про-интеловских» системах это представление непопулярно (у него «DEC'ob-ское» происхождение). В табл. 1.1 приведены разные представления одной тетрады (4 бит). Чтобы перевести любое 8-битное число в десятичное, нужно десятичный эквивалент старшей тетрады умножить на 16 и сложить с эквивалентом младшей тетрады.
Для нашего примера A5h = 10* 16 + 5 = 165. Обратный перевод тоже несложен: десятичное число делится на 16, целая часть даст значение старшей тетрады, остаток — младшей.
В «наследство» от процессоров 8086/88 достался своеобразный способ задания адреса ячейки памяти в виде указателя «seg:offset», состоящего из двух слов: сегмента (seg — segment) и смещения (offset). Такая запись предполагает вычисление полного адреса по формуле addr = 16 • seg + offset. Такое представление 20-битного адреса двумя 16-битными числами в процессорах 8086/88 поддерживается и в реальном режиме всех последующих процессоров х86 (подробнее об адресации памяти см. в 7.3). Здесь сегмент указывает адрес параграфа — 16-байтной области памяти. Выравнивание адреса по границе параграфа означает, что он кратен 16 (4 младших бита нулевые). Нетрудно увидеть, что один и тот же адрес можно задавать разными сочетаниями этих двух компонентов. Так, например, адрес начала области данных BIOS (BIOS Data Area) 00400h представляют и как 0000:0400, и как 0040:0000 (шестнадцатеричное представление подразумевается). Возможны и другие варианты, но их не используют. В данной книге в основном будем пользоваться первым способом, причем нулевое значение сегмента будем представлять кратко, то есть 0:0400. К счастью, в 32-разрядном (и 64-разрядном) режиме работы процессоров в современных ОС и приложениях сегментация не применяется, а адрес выражается одним (32- или 64-битным) числом. Обозначение и порядок битов и байтов шин адреса и данных, принятое в аппаратуре PC, пришло от процессоров Intel 8086/88 (и даже от 8080). Самый младший бит (Least Significant Bit, LSB) имеет номер 0, самый старший (MostSignificant Bit, MSB) бит байта — 7, слова — 15, двойного слова — 31. На рисунках принято старший бит изображать слева, а младший — справа.
|