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

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

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

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

На самом делемикропроцессор имеет три варианта команды возврата ret - это ret, ее синоним retn, атакже команда retf. Они отличаются типами процедур, в которых используются. Командыret и retn служат для возврата из процедур ближнего типа. Команда retf — командавозврата для процедур дальнего типа. Какая конкретно команда будет использоваться,определяется компилятором; программисту лучше использовать команду ret и доверитьтранслятору самому сгенерировать ее ближний или дальний вариант. Количество командret в процедуре должно соответствовать количеству точек выхода из нее.Некоторые языки высокого уровня, к примеру Pascal, требуют, чтобы вызываемаяпроцедура очищала стек от переданных ей параметров. Для этого команда ret содержитнеобязательный параметр число, который, в зависимости от установленного атрибутаразмера адреса, означает количество байт или слов, удаляемых из стека по окончанииработы процедуры.my_proc proc...retendp6См.

также: уроки 10, 14 и команду callROL(Rotate operand Left)Циклический сдвиг операнда влевоrol операнд,количество_сдвиговСхема команды:Назначение: операция циклического сдвига операнда влево.СинтаксисАлгоритм работы:•••сдвиг всех битов операнда влево на один разряд, при этом старший бит операндавдвигается в операнд справа и становится значением младшего бита операнда;одновременно выдвигаемый бит становится значением флага переноса cf;указанные выше два действия повторяются количество раз, равное значениювторого операнда.Состояние флагов после выполнения команды:11 00OF CF?r rПрименение:Команда rol используется для циклического сдвига разрядов операнда влево.

Отличиеэтого сдвига от rcl в том, что очередной сдвигаемый бит одновременно вдвигается воперанд справа и становится значением флага cf. Так же, как и для других сдвигов,значение второго операнда (счетчика сдвига) ограничено диапазоном 0...31. Этообъясняется тем, что микропроцессор использует только пять младших разрядов операндаколичество_разрядов.

Аналогично другим командам сдвига сохраняется эффект,связанный с поведением флага of, значение которого имеет смысл только в операцияхсдвига на один разряд:••если of=1, то текущее значение флага cf и выдвигаемого слева бита операндаразличны;если of=0, то текущее значение флага cf и выдвигаемого слева бита операндасовпадают.Этот эффект, как вы помните, обусловлен тем, что флаг of устанавливается в единицувсякий раз при изменении знакового разряда операнда.;поменять местами половинки регистраeax:movax,0ffff0000hmovcl,16roleax,cl ;eax=0000ffffhСм. также: урок 9 и команды rcr, rcl, ror, sal, sar, shl, shrRORЦиклический сдвиг операнда вправоASCII-коррекция после сложенияror операнд,количество_сдвиговСхема команды:Назначение: операция циклического сдвига операнда вправо.СинтаксисАлгоритм работы:••••сдвиг всех битов операнда вправо на один разряд, при этом младший бит операндавдвигается в операнд слева и становится значением старшего бита операнда;одновременно этот младший бит операнда становится значением флага переносаcf;старое значение флага переноса cf вдвигается в операнд слева и становитсязначением старшего бита операнда;указанные выше два действия повторяются количество раз, равное значениювторого операнда.Состояние флагов после выполнения команды:11 00OF CF?r rПрименение:Команда ror используется для циклического сдвига разрядов операнда вправо.

Отличиеэтого сдвига от rcr в том, что очередной сдвигаемый бит одновременно вдвигается воперанд слева и становится значением флага cf. Так же, как и для других сдвигов,значение второго операнда (счетчика сдвига) ограничено диапазоном 0...31. Этообъясняется тем, что микропроцессор использует только пять младших разрядов операндаколичество_разрядов. Аналогично другим командам сдвига сохраняется эффект,связанный с поведением флага of, значение которого имеет смысл только в операцияхсдвига на один разряд:••если of=1, то текущее значение флага cf и вдвигаемого слева бита операндаразличны;если of=0, то текущее значение флага cf и вдвигаемого слева бита операндасовпадают;Этот эффект, как вы помните, обусловлен тем, что флаг of устанавливается в единицувсякий раз при изменении знакового разряда операнда.;поместить четыре младших бита ax наместо старших битов:rorax,4См.

также: уроки 9 и команды rcl, rcr, ror, sal, sar, shl, shrSAHF(Store AH register into register Flags)Загрузка регистра флагов eFlags/Flags из регистра AHsahfСхема команды:Назначение: запись содержимого регистра ah в младший байт регистра eflags/flags, вкотором содержатся пять флагов cf, pf, af, zf и sf.СинтаксисАлгоритм работы:Команда загружает младший байт регистра eflags/flags содержимым регистра ah. В битах7, 6, 4, 2 и 0 регистра ah должны, соответственно, содержаться новые значения флагов sf,zf, af, pf и cf.Состояние флагов после выполнения команды:07 06 04 02 00SF ZF AF PF CFrrrrrПрименение:Эта команда используется совместно с командой lahf.

Из-за того, что регистр флаговнепосредственно недоступен, сочетание этих команд можно применять для анализа — и,возможно, изменения — состояния некоторых флагов в регистре eflags/flags. Содержимоестаршей части регистра флагов не изменяется.;сбросить в ноль флаг cflahfandah,11111110bsahfСм. также: уроки 2, 7 и команду lahfSAL(Shift Arithmetic operand Left)Сдвиг арифметический операнда влевоsal операнд,количество_сдвиговСхема команды:Назначение: арифметический сдвиг операнда влево.СинтаксисАлгоритм работы:•••сдвиг всех битов операнда влево на один разряд, при этом выдвигаемый слева битстановится значением флага переноса cf;одновременно справа в операнд вдвигается нулевой бит;указанные выше два действия повторяются количество раз, равное значениювторого операнда.Состояние флагов после выполнения команды:11 00OF CF?r rПрименение:Команда sal используется для сдвига разрядов операнда влево. Так же, как и для другихсдвигов, значение второго операнда (счетчика сдвига) ограничено диапазоном 0...31.

Этообъясняется тем, что микропроцессор использует только пять младших разрядовколичество_разрядов. Аналогично другим командам сдвига сохраняется эффект,связанный с поведением флага of, значение которого имеет смысл только в операцияхсдвига на один разряд:••если of=1, то текущее значение флага cf и выдвигаемого слева бита операндаразличны;если of=0, то текущее значение флага cf и выдвигаемого слева бита операндасовпадают.Этот эффект, как вы помните, обусловлен тем, что флаг cf устанавливается в единицувсякий раз при изменении знакового разряда операнда.Команду sal удобно использовать для умножения целочисленных операндов без знака настепени 2. Кстати сказать, это самый быстрый способ такого умножения; умножитьсодержимое ax на 16 (2 в степени 4):movsalax,17ax,4См. также: уроки 8, 9 и команды rcr, rcl, ror, rol, sar, shl, shrSAR(Shift Arithmetic operand Right)Сдвиг арифметический операнда вправоsar операнд,количество_сдвиговСхема команды:Назначение: арифметический сдвиг операнда вправо.СинтаксисАлгоритм работы:•••сдвиг всех битов операнда вправо на один разряд, при этом выдвигаемый справабит становится значением флага переноса cf;обратите внимание: одновременно слева в операнд вдвигается не нулевой бит, азначение старшего бита операнда, то есть по мере сдвига вправо освобождающиесяместа заполняются значением знакового разряда.

По этой причине этот тип сдвигаи называется арифметическим;указанные выше два действия повторяются количество раз, равное значениювторого операнда.Состояние флагов после выполнения команды:11 00OF CF?r rПрименение:Команда sar используется для арифметического сдвига разрядов операнда вправо. Так же,как и для других сдвигов, значение второго операнда (счетчика сдвига) ограниченодиапазоном 0...31. Это объясняется тем, что микропроцессор использует только пятьмладших разрядов операнда количество_разрядов. В отличие от других команд сдвигафлаг of всегда сбрасывается в ноль в операциях сдвига на один разряд.Команду sar можно использовать для деления целочисленных операндов со знаком настепени 2.movax,88;(ax) разделить на 2 во второй степени,то есть на 4sarax,2См.

также: урок 8, 9 и команды rcr, rcl, ror, rol, sal, shl, shrSBB(SuBtract with Borrow)Вычитание с заемомsbb операнд_1,операнд_2Схема команды:Назначение: целочисленное вычитание с учетом результата предыдущего вычитаниякомандами sbb и sub (по состоянию флага переноса cf).СинтаксисАлгоритм работы:••выполнить сложение операнд_2=операнд_2+(cf);выполнить вычитание операнд_1=операнд_1-операнд_2;Состояние флагов после выполнения команды:11 07 06 04 02 00OF SF ZF AF PF CFrrrrrrПрименение:Команда sbb используется для выполнения вычитания старших частей значениймногобайтных операндов с учетом возможного предыдущего заема при вычитаниимладших частей значений этих операндов.;выполнить вычитание 64-битныхзначений: vich_1-vich_2vich_1 dd2 dup (0)vich_2 dd2 dup (0)rezdd2 dup (0)...;ввести значения в поля vich_1 иvich_2:;младший байт по младшему адресу...moveax,vich_1subeax,vich_2;вычесть младшие половинки чиселmovrez,eax ;младшая частьрезультатаmoveax,vich_1+4sbbeax,vich_2+4;вычесть старшие половинки чиселmovrez+4,eax;старшая часть результатаСм.

также: урок 8, Приложение 7 и команды subSCAS/SCASB/SCASW/SCASDСканирование строки байтов/слов/двойных словASCII-коррекция после сложенияscas приемникscasbСхема команды:scaswscasdНазначение: поиск значения в последовательности (цепочке) элементов в памяти.СинтаксисАлгоритм работы:••выполнить вычитание (элемент цепочки-(eax/ax/al)). Элемент цепочкилокализуется парой es:edi/di.

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

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

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

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