Ассемблер и программирование для IBM PC


          

Если бы квадратных скобок не


Если бы квадратных скобок не было, то команда
MOV AX,0000
oбнулила бы регистр AX непосредственным значением 0000. Теперь введем команду T. Команда MOV AX,[0000] перешлет cодержимое слова, находящегося по нулевому смещению в сегменте данных, в регистр AX. Содержимое 2301 преобразуется командой в 0123 и помещается в регистр AX. Следующую команду ADD можно выполнить, введя еще раз команду T. В результате содержимое слова в DS по смещению 0002 прибавится в регистр AX. Теперь регистр AX будет содержать сумму 0123 и 0025, т.е 0148. Следующая команда MOV [0004],AX выполняется опять по вводу T. Эта команда пересылает содержимое регистра AX в слово по смешению 0004. Для просмотра изменений содержимого сегмента данных введите D DS:00. Первые девять байт будут следующими:
значение в сегменте данных: 23 01 25 00 48 01 2A 2A 2A величина смещения: 00 01 02 03 04 05 06 07 08
Ассемблер для IBM PC. Глава 2 38
Значение 0148, которое было занесено из регистра AX в сег мент данных по смещению 04 и 05, имеет обратное представле ние 4801. Заметьте что эти шест. значения представлены в правой части экрана их символами в коде ASCII. Например, шест.23 генерируeтся в символ #, а шест.25 - в символ %. Три байта с шест. значениями 2A высвечиваются в виде трех звездочек (***). Левая часть дампа показывает действительные машинные коды, которые находятся в памяти. Правая часть дампа только помогает проще локализовать символьные (сроч ные) данные. Для просмотра содержимого сегмента кодов введите D DS:100 так, как показано на рис. 2.3. В заключении введите Q для завершения работы с программой.
МАШИННАЯ АДРЕСАЦИЯ ------------------------------------------------------------
Для доступа к машинной команде процессор определяет ее адрес из содержимого регистра CS плюс смещение в регистре IP. Например, предположим, что регистр CS содержит шест. 04AF (действительный адрес 04AF0), а регистр IP содержит шест. 0023:
CS: 04AF0 IP: 0023 Адрес команды: 04B13
Если, например, по адресу 04B13 находится команда:

Содержание  Назад  Вперед