Задание 3. Привести физические адреса начальных элементов информации, содержащейся соответственно в сегментах данных

Привести физические адреса начальных элементов информации, содержащейся соответственно в сегментах данных, кода и стека, исходя из одинакового смещения 2451h и содержимого сегментных регистров: DS-4862h, CS-4357h, SS-1456h.

DS¸48620h+2451h=51071h;

CS¸43570h+2451h=67А8h;

SS¸1456h+2451h=38А7h.

2.Привести фрагменты программы на ассемблере с указанием её линии, определением и инициализацией всех сегментных регистров.

Для составления фрагмента программы, представленного на рис.3.1, инициализирующей все сегментные регистры необходимо учитывать, что часть ОЗУ, доступная при неизменном значении сегментного регистра, называется сегментом памяти.Поэтому программа на языке ассемблера обычно состоит из нескольких сегментов, соответствующих разным сегментным регистрам. Размер сегмента может быть любым, но не больше FFFFh (64 Кбайт). Сегмент начинается служебным словом ассемблера SEGMENT, перед которым стоит имя сегмента (например, Dat), выбранное программистом. Заканчивается сегмент словом ENDS с тем же именем.

Участок памяти размером 16 байтом имеет особое название-параграф, а адрес, кратный числу 16, называется началом параграфа. Начало сегмента может быть определено на границе страницы длиной в 256 байт с помощью служебного слова Page.

Фрагмент программы:

Задание 3. Привести физические адреса начальных элементов информации, содержащейся соответственно в сегментах данных - student2.ru

Рис.3.1. Фрагмента программы,инициализирующей все сегментные регистры

3.Определить содержимое сегментных регистров DS, CS и SS при указанных в табл.5 физических адресах информационных элементов сегментов данных, кода и стека и их одинакового смещения в сегментах.

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

Наши рекомендации