Читать «Assembler. Программирование на языке ассемблера IBM PC» онлайн - страница 4

Unknown Author

При этом правые разряды (с меньшими номерами) называются младшими, а левые разряды - старшими. В каждом разряде может быть записана величина 1 или 0, такую величину принято называть битом (bit). Таким образом, содержимое любого байта - это набор из 8 битов, из 8 нулей и единиц.

Ради краткости договоримся в дальнейшем записывать содержимое ячеек не в двоичной системе, а в шестнадцатеричной, указывая в конце записи числа букву h (hexadecimal - шестнадцатеричный), чтобы отличать такие числа от десятичных. Например, если содержимом байта является 00010011, то будем записывать его как 13h (десятичное 19).

Байты нумеруются начиная с 0, порядковый номер байта называется его адресом. Объем оперативной памяти ПК - 220 байтов (1 Мб), поэтому для ссылок на байты памяти нужны 20-разрядные адреса - от 00000h до FFFFFh.

Отметим, что в данной книге на всех рисунках, изображающих память, байты с меньшими адресами будут располагаться вверху (или слева), а с большими адресами - внизу (или справа):

Это следует учитывать, поскольку во многих книгах по ПК память на рисунках изображается в обратном порядке, а нередко и в обоих направлениях, из-за чего часто возникает путаница.

Байт - это наименьшая адресуемая ячейка памяти. Но в ПК имеются и более крупные адресуемые ячейки - слова и двойные слова.

Слово (word) - это два соседних байта. Размер слова - 16 разрядов. Они нумеру ются, если рассматривать слово как единое целое, справа налево от 0 до 15. Адре сом слова считается по определению адрес его первого банта (с меньшим адресом).

слово А

Двойное слово (double word) - это четыре соседних банта или, что то же самое, два соседних слова. Размер двойного слова - 32 разряда, они нумеруются справа налево от 0 до 31. Адрес двойного слова - адрес первого из его байтов (с наименьшим адресом).

А    А+1    А+2    А+3

24 23    16 15

двойное слово А

ПК может работать как с байтами, так и со словами и двойными словами, т. е. в ПК имеются команды, в которых ячейки этих размеров рассматриваются как единое целое. В то же время слова и двойные слова можно обрабатывать и побайтно.

Отметим, что адрес ячейки еще не однозначно определяет ячейку, поскольку с этого адреса может начинаться ячейка размером в байт, ячейка размером в слово и ячейка размером в двойное слово. Поэтому нужно еще тем или иным способом указывать размер ячейки. Как это делается, мы увидим позже.

Зачем введены ячейки разных размеров? Это связано с тем, что данные разных типов имеют разные размеры, поэтому и нужны ячейки разных размеров. Например, банты используются для хранения небольших целых чисел (типа счетчиков) и символов. В виде же слов представляют обычные целые чисел и адреса. Двойные слова используются для хранения больших чисел.

1.2. Регистры

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