Иллюстрированный самоучитель по Assembler


Рис. 1.1. Взаимодействие оперативной


Рис. 1.2. Байт, слово и двойное слово.

При обсуждении содержимого многобайтового данного приходится ссылаться на составляющие его байты; эти байты условно нумеруются от нуля и располагаются (при их изображении на бумаге) в порядке возрастания номера справа налево, так что слева оказываются байты с большими номерами, а справа - байты с меньшими номерами. Крайний слева байт принято называть старшим, а крайний справа - младшим. Такой порядок расположения байтов связан с привычной для нас формой записи чисел: в многоразрядном числе слева указываются старшие разряды, а справа - младшие. Следующее число, если его написать за предыдущим, опять начнется со старшего разряда и закончится младшим. Однако в памяти компьютера данные располагаются в более естественном порядке непрерывного возрастания номеров байтов и, таким образом, каждое слово или двойное слово в памяти начинается с его младшего байта и заканчивается старшим (рис. 1.3).


Рис. 1.3. Нумерация байтов в многобайтовых данных.

Строго говоря, в памяти компьютера можно хранить только целые двоичные числа, так как память состоит из двоичных запоминающих элементов. Для записи иных данных, например, символов или дробных чисел, для них предусматриваются правила кодирования, т.е. представления в виде последовательности битов той или длины. Так, действительное число одинарной точности занимает в памяти двойное слово (32 бит), в котором 23 бит отводятся под мантиссу, 8 бит под порядок и еще один бит под знак числа. Программы, работающие с такого рода данными, должны, естественно, знать правила их записи и руководствоваться ими при обработке и представлении этих данных.

Двоичная система счисления, в которой работают все цифровые электронные устройства, неудобна для человека. Для удобства представления двоичного содержимого ячеек памяти или регистров процессора используют иногда восьмеричную, а чаще - шестнадцатеричную системы счисления. Для процессоров Intel используется шестнадцатеричная система.

Каждый разряд шестнадцатеричного числа может принимать 16 значений, из которых первые 10 обозначаются обычными десятичными цифрами, а последние 6 - буквами латинского алфавита от А до F, где А обозначает 10, В - И, С - 12, D - 13, Е - 14, a F - 15. В языке ассемблера шестнадцатеричные числа, чтобы отличать их от десятичных, завершаются буквой h (или Н). Таким образом, 100 - это десятичное число, a l00h - шестнадцатеричное (равное 256). Поскольку одна шестнадцатеричная цифра требует для записи ее в память компьютера четырех двоичных разрядов, то содержимое байта описывается двумя шестнадцатеричными цифрами (от 00h до FFh, или от 0 до 255) , а содержимое слова - четырьмя (от 0000h до FFFFh, или от 0 до 65535).




Начало  Назад  Вперед



Книжный магазин