Главная » Просмотр файлов » Описание системы команд

Описание системы команд (1110646), страница 12

Файл №1110646 Описание системы команд (Семинары) 12 страницаОписание системы команд (1110646) страница 122019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 12)

Какизвестно, прямой доступ к регистру флагов невозможен, поэтому данная команда являетсяодной из немногих команд, позволяющих получить доступ к регистру флагов как ксодержимому обычного регистра. Обратное действие, то есть восстановление —возможно измененного слова — в регистр флагов, осуществляется командой popf. Этакоманда может использоваться в программах обработки прерываний и в других случаях,когда необходимо сохранить локальный контекст процесса вычисления.;извлечь значение регистра flags иизменить;значение флага cf на обратноеpushfpopaxxorax,01hpushaxpopfСм.

также: уроки 7, 10, 14, 15, 16, 17 и команды pop, popa, popad, popfd, push, pusha,pushad, popf, pushfdPUSHFD(PUSH eFlags Double word register onto stack)Размещение расширенного регистра флагов в стекеpushfdСхема команды:Назначение: размещение в стеке содержимого регистра флагов eflags.СинтаксисАлгоритм работы:••уменьшить значение указателя стека esp на 4;записать в вершину стека двойное слово, представляющее собой содержимоерегистра eflags.Состояние флагов после выполнения команды:выполнение команды не влияет на флагиПрименение:Команды pushfd и popfd используются аналогично командам pushf и popf. Команда pushfdприменяется для получения содержимого регистра флагов. Как известно, прямой доступ крегистру флагов невозможен, поэтому данная команда является одной из немногихкоманд, позволяющих получить доступ к регистру флагов как к содержимому обычногорегистра.

Обратное действие, то есть восстановление — возможно измененного слова — врегистр флагов, осуществляется командой popfd. Эта команда может использоваться впрограммах обработки прерываний или в других случаях, когда необходимо сохранитьлокальный контекст процесса вычисления..386;извлечь значение регистра eflags иизменить;значение флага cf на обратноеpushfdpopeaxxoreax,01hpusheaxpopfdСм. также: уроки 7, 10, 14, 15, 16, 17 и команды pop, popa, popad, popf, popfd, push, pusha,pushad, pushfRCL(Rotate operand through Carry flag Left)Циклический сдвиг операнда влево через флаг переносаrcl операнд,количество_сдвиговСхема команды:Назначение: операция циклического сдвига операнда влево через флаг переноса cf.СинтаксисАлгоритм работы:•••сдвиг всех битов операнда влево на один разряд, при этом старший бит операндастановится значением флага переноса cf;одновременно старое значение флага переноса cf вдвигается в операнд справа истановится значением младшего бита операнда;указанные выше два действия повторяются количество раз, равное значениювторого операнда команды rcl.Состояние флагов после выполнения команды:11 00OF CF?r rЗдесь обозначение ?r означает то, что анализ состояния флага имеет смысл приопределенном сочетании операндов.

В случае команды rcl флаг of представляет интерес,если сдвиг осуществляется на один разряд (см. ниже описание применения команды rcl).Применение:Команда rcl используется для циклического сдвига разрядов операнда влево. Особенностьэтого сдвига в том, что он происходит с некоторой задержкой, так как очереднойсдвигаемый бит оказывается на некоторое время вне операнда. В это время можнопроизвести его извлечение и (или) подмену.

Другой важный момент заключается в том,что для счетчика сдвига микропроцессор использует только пять младших разрядовоперанда количество_разрядов. Таким образом, значение, большее 31, микропроцессоромне допускается (аппаратно это ограничение реализуется тем, что игнорируются значениявсех битов счетчика, кроме первых пяти). Обратите внимание на еще один интересныйэффект, связанный с поведением флага of. В операциях сдвига на один разряд поизменению этого флага можно судить о факте изменения знакового (старшего) разрядаоперанда:••of=1, если текущее значение флага cf и выдвигаемого бита операнда слеваразличны;of=0, если текущее значение флага cf и выдвигаемого бита операнда слевасовпадают.;сдвиг операнда, занимающего двадвойных слова;на четыре разряда влевоch_ldd...;младшая часть64-битного операндаch-2dd...;старшая часть64-битного операнда...movcx,4;счетчиксдвигов в cxmoveax,ch_lmovedx,ch_hm1:clc;очистка флагаcfrcleax,1;старший битeax в cfrcledx,1;cf в младшийбит edx, старший бит edx в cfloopm1См.

также: урок 9 и команды rcr, rol, ror, sal, sar, shl, shrRCR(Rotate operand through Carry flag Right)Циклический сдвиг операнда вправо через флаг переносаrcr операнд,количество_сдвиговСхема команды:Назначение: операция циклического сдвига операнда вправо через флаг переноса cf.СинтаксисАлгоритм работы:•••сдвиг всех битов операнда вправо на один разряд; при этом младший бит операндастановится значением флага переноса cf;одновременно старое значение флага переноса — в операнд слева и становитсязначением старшего бита операнда;указанные выше два действия повторяются количество раз, равное значениювторого операнда команды rcr.Состояние флагов после выполнения команды:11 00OF CF?r rЗдесь обозначение ?r означает то, что анализ состояния флага имеет смысл приопределенном сочетании операндов.

В случае команды rcr флаг of представляет интерес,если сдвиг осуществляется на один разряд (см. ниже описание применения команды rcr).Применение:Команда rcr используется для циклического сдвига разрядов операнда вправо.Особенность этого сдвига в том, что он происходит с некоторой задержкой, так какочередной сдвигаемый бит оказывается на некоторое время вне операнда. В это времяможно произвести его извлечение и (или) подмену. Другой важный момент заключается втом, что для счетчика сдвига микропроцессор использует только пять младших разрядовоперанда количество_разрядов. Таким образом, значение, большее 31, не допускается(аппаратно это ограничение реализуется тем, что игнорируются значения битов счетчикастарше пятого). Обратите внимание на еще один интересный эффект, связанный споведением флага of, — его значение имеет смысл только в операциях сдвига на одинразряд и обусловлено тем, что по изменению этого флага можно судить о факте изменениязнакового разряда операнда:••of=1, если текущие (то есть до операции сдвига) значения флага cf и старшего,левого бита операнда различны;of=0, если текущие (то есть до операции сдвига) значения флага cf и старшего,левого бита операнда слева совпадают.;подсчет числа единичных битов воперандеoperand dw......movcx,16;размероперандаxoral,al;счетчикединичных битовcycl:rcroperand,1jc$+4;переход, еслиочередной выдвинутый бит равен 1jmp$+4;переход, еслиочередной выдвинутый бит равен 0incal;увеличитьсчетчик единичных битовloopcyclСм.

также: урок 9 и команды rcl, rol, ror, sal, sar, shl, shrREP/REPE/REPZ/REPNE/REPNZ(REPeat string operation)Повторить цепочечную операциюrepreperepzСхема команды:repnerepnzНазначение: указание условного и безусловного повторения следующей за даннойкомандой цепочечной операции.СинтаксисАлгоритм работы:Алгоритм работы зависит от конкретного префикса.

Префиксы rep, repe и repz на самомделе имеют одинаковый код операции, их действия зависят от той цепочечной команды,которую они предваряют:••rep используется перед следующими цепочечными командами и их краткимиэквивалентами: movs, stos, ins, outs. Действия rep:1.

анализ содержимого cx:ƒ если cx<>0, то выполнить цепочечную команду, следующую заданным префиксом и перейти к шагу 2;ƒ если cx=0, то передать управление команде, следующей за даннойцепочечной командой (выйти из цикла по rep);2. уменьшить значение cx=cx–1 и вернуться к шагу 1;repe и repz используются перед следующими цепочечными командами и ихкраткими эквивалентами: cmps, scas. Действия repe и repz:1. анализ содержимого cx и флага zf:ƒ если cx<>0 или zf<>0, то выполнить цепочечную команду,следующую за данным префиксом, и перейти к шагу 2;ƒ если cx=0 или zf=0, то передать управление команде, следующей заданной цепочечной командой (выйти из цикла по rep);2. уменьшить значение cx=cx-1 и вернуться к шагу 1;•repne и repnz также имеют один код операции и имеют смысл при использованииперед следующими цепочечными командами и их краткими эквивалентами: cmps,scas.

Действия repne и repnz:1. анализ содержимого cx и флага zf:ƒ если cx<>0 или zf=0, то выполнить цепочечную команду,следующую за данным префиксом и перейти к шагу 2;ƒ если cx=0 или zf<>0, то передать управление команде, следующей заданной цепочечной командой (выйти из цикла по rep);2. уменьшить значение cx=cx–1 и вернуться к шагу 1.Состояние флагов после выполнения команды:06ZFrПрименение:Команды rep, repe, repz, repne и repnz в силу специфики своей работы называютсяпрефиксами.

Они имеют смысл только при использовании цепочечных операций,заставляя их циклически выполняться и тем самым без организации внешнего циклаобрабатывать последовательности элементов фиксированной длины. Большинствоприменяемых префиксов являются условными, то есть они прекращают работуцепочечной команды при выполнении определенных условий.См. также: урок 11 и команды cmps/cmpsb/cmpsw/cmpsd, ins/insb/insw/insd, outs,movs/movsb/movsw/movsd, scas/scasb/scasw/scasd, stos/stosb/stosw/stosdRET/RETF(RETurn/RETurn Far from procedure)Возврат ближний (дальний) из процедурыretret числоНазначение: возврат управления из процедуры вызывающей программе.Схема команды:СинтаксисАлгоритм работы:Работа команды зависит от типа процедуры:•••для процедур ближнего типа — восстановить из стека содержимое eip/ip;для процедур дальнего типа — последовательно восстановить из стека содержимоеeip/ip и сегментного регистра cs.если команда ret имеет операнд, то увеличить содержимое esp/sp на величинуоперанда число; при этом учитывается атрибут режима адресации — use16 илиuse32:o если use16, то sp=(sp+число), то есть указатель стека сдвигается на числобайт, равное значению число;o если use32, то sp=(sp+2*число), то есть указатель стека сдвигается на числослов, равное значению число.Состояние флагов после выполнения команды:выполнение команды не влияет на флагиПрименение:Команду ret необходимо применять для возврата управления вызывающей программе изпроцедуры, управление которой было передано по команде call.

Характеристики

Тип файла
PDF-файл
Размер
1,53 Mb
Материал
Тип материала
Высшее учебное заведение

Список файлов семинаров

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее