КАТЕГОРИИ: Архитектура-(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; Просмотров: 381; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |