Привіт і ласкаво просимо назад.
У цьому уроці ми розглянемо інструкції повороту за допомогою ROL і ROR.
ROL розшифровується
як поворот ліворуч.
ROR розшифровується
як поворот направо.
Синтаксис: ROL призначення і N, де призначення - це регістр, а N - кількість обертів, які ви хочете
зробити.
Отже, у цьому випадку він повертає біти на N разів ліворуч.
Інший - ROR, що означає поворот направо і N. Це обертає біти N разів праворуч, а потім прапорець
перенесення, прапорець, містить останній біт,
зсунутий з одного кінця на інший.
Обмеження полягає в тому, що N має бути невеликим числом, або ви можете використовувати
-, ви можете використовувати - регістр, наприклад, призначення -. Тож давайте розглянемо графічний
приклад.
Якщо ми перемістимо це двійкове число в регістр - і викличемо
поворот вправо на один біт, то ось що станеться. Тепер у нас є 10010011 в регістрі -, і коли ми викликаємо rotate - one, крайній лівий біт
буде переміщено вправо, а цей біт переміститься праворуч від нього.
Він переміститься вправо.
Це переміститься вправо і так далі.
Останній біт тут повернеться до кінця вліво, і його копія також буде збережена у прапорці перенесення.
Отже, після ротації ми матимемо цей номер, 11001001, а у прапорі перенесення буде одиниця, тому що
останній біт буде збережено.
Тепер те ж саме відбувається для ROL, поверніть ліворуч.
Якщо його повернути на одиницю вліво, то напрямок зміниться на протилежний.
Звідси він перейде в розділ - зареєструватися.
Отже, ROL - це просто зворотний напрямок ROR.
Давайте подивимося на це за допомогою x64dbg.
Отже, відкриваємо наш шаблон перший і намагаємося ввести ці інструкції.
Спочатку йде MOV - 0B для двійкового коду, а потім 10010011. Натискаємо enter, а потім ROR - один. Натисни Enter. Гаразд.
Отже, у нас є брейк-поінт.
Тепер ми біжимо до нашої брейк-пойнту.
Він потрапив у наш брейк-пойнт.
Давай переступимо через це.
Давайте переступимо через це зараз.
Перемістіть 93 гекс на -.
Тож тепер ми розглянемо -.
Перейдіть до -, скопіюйте значення і вставте його всередину калькулятора.
І підтвердити, що це дійсно 10010011, номер, на який ми переїхали -.
Тепер зробимо оберт вправо.
Тож ми переступаємо через це.
Так що все повернеться на один біт вправо.
Тепер прапор, який вигнали, а потім перенесли, також несе той, який був вигнаний.
А тепер розглянемо це значення в -.
Тож давайте скопіюємо це зараз і вставимо сюди.
І ми підтверджуємо, що дійсно отримуємо 11001001, як і очікували.
Ось як працює ротація в монтажі.
Тож давайте врятуємо це зараз. Файл, Файл виправлення, клацніть Виправлення, а потім дайте назву.
Назвемо це 48_тире_обертання. x.
Збережи. Натисни
ОК. На цьому відео все.
Дякуємо за перегляд.