Часть полного текста документа: ЯЗЫК МАКРОАССЕМБЛЕРА IBM PC (Справочное пособие) Составитель: В.Н.Пильщиков (МГУ, ВМК) (январь 1992 г.) В пособии рассматривается язык макроассеблера для персональных ЭВМ типа IBM PC (язык MASM, версия 4.0). Пособие состоит из 4 глав. В главе 1 рассмотрены особенности пер- сональных компьютеров типа IBM PC и приведены начальные сведения о языке MASM. В главе 2 описывается система команд этих компьютеров. Глава 3 посвящена посвящена собственно языку MASM. В главе 4 приведены примеры фрагментов программ и полных программ на MASM для решения раз- личных задач. В пособии не рассматриваются вопросы, связанные с обработкой дво- ично-десятичных чисел и работой арифметического сопроцессора 8087 или 80287. Под термином "ПК" в пособии понимается персональный компьютер типа IBM PC c микропроцессором 8088/8086, 80186 или 80286. ГЛАВА 1. ОСОБЕННОСТИ ПК. ВВЕДЕНИЕ В MASM. 1.1. ОПЕРАТИВНАЯ ПАМЯТЬ. РЕГИСТРЫ. 1.1.1 Оперативная память Объем оперативной памяти ПК - 2^20 байтов (1 Мб). Байты нумеруются начиная с 0, номер байта называется его адресом. Для ссылок на байты памяти используются 20-разрядные адреса: от 00000 до FFFFF (в 16-рич- ной системе). Байт содержит 8 разрядов (битов), каждый из которых может прини- мать значение 1 или 0. Разряды нумеруются справа налево от 0 до 7: ----------------- | | | | | | | | | ----------------- 7 6 5 4 3 2 1 0 Байт - это наименьшая адресуемая ячейка памяти. В ПК используются и более крупные ячейки - слова и двойные слова. Слово - это два сосед- них байта, размер слова - 16 битов (они нумеруются справа налево от 0 до 15). Адресом слова считается адрес его первого байта (с меньшим ад- ресом); этот адрес может быть четным и нечетным. Двойное слово - это любые четыре соседних байта (два соседних слова), размер такой ячейки - 32 бита; адресом двойного слова считается адрес его первого байта. Байты используются для хранения небольших целых чисел и символов, слова - для хранения целых чисел и адресов, двойные слова - для хране- ния "длинных" целых чисел и т.н. адресных пар (сегмент:смещение). 1.1.2 Регистры Помимо ячеек оперативной памяти для хранения данных (правда, крат- ковременного) можно использовать и регистры - ячейки, входящие в сос- тав процессора и доступные из машинной программы. Доступ к регистрам осуществляется значительно быстрее, чем к ячейкам памяти, поэтому ис- пользование регистров заметно уменьшает время выполнения программ. Все регистры имеют размер слова (16 битов), за каждым из них зак- реплено определенное имя (AX, SP и т.п.). По назначению и способу использования регистры можно разбить на следующие группы: - регистры общего назначения (AX, BX, CX, DX, BP, SI, DI, SP); - сегментные регистры (CS, DS, SS, ES); - счетчик команд (IP); - регистр флагов (Flags). (Расшифровка этих названий: A - accumulator, аккумулятор; B - base, база; C - counter, счетчик; D - data, данные; BP - base pointer, ука- затель базы; SI - source index, индекс источника; DI - destination index, индекс приемника; SP - stack pointer, указатель стека; CS - code segment, сегмент команд; DS - data segment, сегмент данных; SS - stack segment, сегмент стека; ES - extra segment, дополнительный сег- мент; IP - instruction pointer, счетчик команд.) Регистры общего назначения можно использовать во всех арифметичес- ких и логических командах. ............ |