Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Перечислите группы директив Ассемблера, укажите их функциональное назначение




В директивах Ассемблера выделяют следующие группы:

- Определения данных – директивы этой группы описывают имена (идентификаторы) переменных программы и их размер (байт, слово (2 байта), двойное слово (4 байта);

- Определение сегмента или процедуры – директивы этой группы предписывают Ассемблеру назначить адрес начала сегмента для переменных (программы, стека или процедуры) в программе и сообщают, какой регистр сегмента связывается с соответствующим сегментом данных, программы или стека;

- Внешних ссылок – директивы этой группы обеспечивают связь между модулями программы, делая некоторые данные доступными для разных модулей или указывая, что данные определяются в других модулях;

- Определение идентификаторов – директива назначает заданному имени (идентификатору) постоянное значение;

- Управление трансляцией – директива означает конец транслируемой программы.

38.Как могут задаваться операнды машинных команд Ассемблера и где в памяти ЭВМ они могут располагаться?

Операнды команды могут задаваться по-разному:

1) неявно на микропроцессорном уровне. Такие команды работают либо с регистрами, либо с флагами и в конкретной команде объект определяется кодом команды, например:

PUSHF – команда пересылки флагов в стек. Источник (откуда берутся данные) и приемник (куда пересылаются) определяются кодом команды;

Или CLD – обнуление флага направления DF;

2) явно в самой команде (непосредственный операнд), например:

MOV AX,0;

одним из регистров общего назначения (РОН) или сегментным регистром;

3) идентификатором переменной (меткой переменной, описанной в сегменте данных). В этом случае операнд располагается в ОЗУ. При косвенной адресации адрес-смещение переменной в ОЗУ помещается в РОН или индексный регистр и в команде используется ссылка на этот регистр;

4) номером порта ввода-вывода. В этом случае номер задается шестнадцатеричной константой;

5) регистром стека, когда используются команды работы со стеком и в этом случае операнд либо заносится в вершину стека, либо считывается из вершины стека.

 

36Поясните правило формирования физического адреса в памяти ЭВМ для 16-битового микропроцессора. Какие регистры используются при этом?

Изучаемый микропроцессор имеет 1 Мбайт памяти ОЗУ. Следовательно, для указания адреса информации в команде микропроцессора должен был иметь 20 разрядов. Однако такое количество разрядов микропроцессора не может обработать за 1 операцию 16-битового процессора. Чтобы разрешить это противоречие, было решено формировать физический адрес из 2-х 16-битовых слагаемых: базы (содержимое регистра сегмента) и смещения по правилу:

Физический Адрес = смещение (IP) +16*(регистр сегмента - CS).

В действительности длинная операция умножения при вычислении физического адреса не выполняется по той причине, что микропроцессор использует содержимое 16-битового регистра так, как если бы оно имело 4 дополнительных нулевых бита 0010->0100(*2)->1000(*4)->10000(*8)->100000(*16).

Например, пусть смещение будет 10Н (в шестнадцатеричной системе счисления), а номер блока (содержимое регистра сегмента) равно 2000Н. Тогда, 0000 0000 0001 0000 (смещение)

+ 0010 0000 0000 0000 0000 (номер блока)

0010 0000 0000 0001 0000 (физический адрес)

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




Поделиться с друзьями:


Дата добавления: 2015-04-24; Просмотров: 356; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.