- •1. Що таке Асемблер?
- •9.Які ресурси середовища Intel64 для виконання програм
- •10. Режимы работы процессоров ia-32 (Режими роботи процесорів архітектури x86)
- •1 Реальный режим
- •2 Режим системного управления
- •3 Защищенный режим
- •11) Який адресний простір архітектури ia-32 і чим він визначається?
- •12 Який адресний простір архітектури Intel64 і чим він визначається?
- •14.Способи переведення у іншу систему числення. Приклади
- •13. Позиційні системи числення. Поняття та основні формули
- •15. Способи представлення від'ємних чисел
- •16. Додатковий код. Приклади
- •17. Зміщений код. Приклади
- •18 Формати з плаваючою точкою. Стандарти
- •19 Стандартний двійковий 32-бітовий формат з плаваючою точкою
- •20 Тандартний двійковий 64-бітовий формат з плаваючою точкою
- •21.Стандартний двійковий 80-бітовий формат з плаваючою точкою
- •22. Порівняння основних стандартних двійкових форматів з плаваючою точкою
- •23. Фізична память. Як узнати розрядність адрес?
- •24. Моделі пам'яті у процесорах архітектури x86
- •25. Сегментована пам'ять
- •26. Flat - модель пам'яті
- •27. Сторінкова пам'ять
- •28. Регістри процесора архітектури ia-32
- •29. Регістри процесора архітектури Intel64
- •30. Регістри загального призначення.
- •31. Сегментні регістри
- •8 Прапорів полягання
- •1 Прапор управління
- •5 Системних прапорів
- •35 Операнди команд та способи адресації операндів
- •36 Безпосередні операнди команд
- •37 Регістрові операнди команд
- •38 Способи вказування комірок пам'яті у якості операндів команд
- •39. Що таке опосередкована адресація стосовно вказування операнду команди?
- •40. Що таке база, індекс, зміщення, масштаб у операнді команди?
- •41Полное определение
- •44. Структура вихідного тексту програми на Асемблері
- •45.Директиви Асемблера. Найпопулярніші на вашу думку директиви
- •46.Директиви вказування типу процесора та моделі пам'яті
- •47. Директиви створення даних
- •48. Директива invoke. Приклади
- •49. Директива align. Приклади
- •50. Базові типи даних архітектури процесорів x86
- •51. Числові типи даних
- •52.Упаковані simd типи даних
- •Використання
- •53. Основні групи команд процесорів архітектури x86
- •54. Команди копіювання даних
- •Xchg Обмін данімі між операндами
- •55. Команди додавання цілих чисел
- •56. Команди віднімання цілих чисел
- •57. Команди множення цілих чисел
- •58. Команди ділення цілих чисел
- •59. Побітові логічні команди
- •60. Програмування читання та запису окремих бітів
- •61. Команди зсувів
- •62. Команди циклічного зсуву
- •63 Команды перехода
- •64 Реализация if-then-else
- •65, 66 Програмування циклів на асемблері?
- •67 Цикл з постумовою (рис. 2)
- •68. Програмування циклу зі збереженням біту переносу cf
- •69. Програмування циклу на основі команд loop
- •70. Програмування вкладених циклів
- •71. Команди обробки рядків даних
- •72. Команди stos, stoSx
- •73. Команди movs,movsx.
- •74. Префікс повторення rep та його різновиди.
- •75.Що таке структурованість та модульність програм. Наведіть приклади.
- •76. Макроси. Приклади програмування
- •77. Процедури. Визначення, виклик. Приклади програмування
- •78. Способи передавання значень параметрів процедурам
- •79. Локальні дані процедур
- •80. Пролог та епілог процедури
- •81. Стековий кадр процедури
- •82. Написання модульних програм на Асемблері
- •83. Можливості використання мов високого рівня сумісно з Асемблером
- •84. Конвенції виклику процедур
- •85. Конвенція cdecl. Приклад програмування.
- •86. Конвенція stdcall. Приклад програмування.
- •87. Асемблерні вставки у мовах високого рівня.
- •88. Середовище x87 fpu
- •89. Команди x87 fpu. Приклад програми.
- •90. Стек даних x87 fpu. Приклад програми.
- •91. Команди simd
- •92. Розширення mmx
- •93. Розширення sse
- •94. Типи даних sse
- •95. Векторны команди sse
- •96 Горизонтальне додавання
- •97. Команди movups та movaps. Приклад використання
- •98. Векторні команди множення sse. Приклад використання
- •99. Векторні команди додавання sse. Приклад використання
- •100. Команда shufps та її застосування
- •101. Розширення avx
- •102. Типи даних avx
- •103. Команды avx
- •104. Особенности команд avx по отношению к sse
- •105. Эволюция simd-расширений системы команд процессоров архитектуры х86
28. Регістри процесора архітектури ia-32
Регістри загального призначення:
AX ЕAX (Accumulator) Регістр для виконання арифметичних операцій. BX ЕBX (Base) Використовується для адресації за базою
CX ЕCX (Counter) Лічильник кроків циклу DX ЕDX (Data) Зберігає “довгі” результати операцій (які не вміщуються в АХ)
SІ ЕSІ (Source Index) Індекс поточного елемента області, з якої пересилаються дані
DІ ЕDІ (Destination Index) Індекс поточного елемента області, куди пересилаються дані
BP ЕBP (Base Pointer) Адреса бази стека
SP ЕSP (Stack Pointer) Адреса вершини стека
При цьому вони поділяються на:
32 біта EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, R8D-R15D
16 біт AX, BX, CX, DX, DI, SI, BP, SP, R8W-R15W (молодші половинки відповідних регістрів)
8 біт AL, BL, CL, DL AH, BH, CH, DH или DIL, SIL, BPL, SPL, R8L-R15L(старший/молодший байт 16 бітових половинок)
Регістр – вказівник команд:
ІP ЕІP (Instruction Pointer) Містить адресу команди, яку процесор виконує на поточному кроці своєї роботи
Сегментні регістри:
• CS — Сегмент коду. Використовується для вибірки команд програми;
• DS — Сегмент даних. Використовується за замовчуванням для доступу до даних;
• ES — Додатковий сегмент. Є отримувачем даних в командах обробки рядків;
• SS — Сегмент стеку. Використовується для розміщення програмного стеку;
• FS — Додатковий сегментний регістр. Спеціального призначення не має. З'явився в процесорі 80386;
• GS — Аналогічно попередньому, але в нових процесорах с 64-бітною архітектурою має особливий статус: може використовуватись для швидкого переключення контекстів.
FLAGS - це регістр стану процесора (PSW).
CF - прапор переносу зі старшого розряду
OF - прапор переповнення
AF - прапор додатк. переносу (для десяткового перенесення).
SF - прапор знака.
ZF - прапор нуля.
PF - прапор парності.
PF = 1, якщо кількість одиниць біт парне, прапори IF, DF, TF - прапори управління.
IF - прапор дозволу переривання (може встановлюватися програмно)
DF - прапор напрямки при обробці строкових операндів.
TF - прапор трасування (мікропроцесор виконує 1-у команду і зупиняється).
Цілочисельні регістри MMX-розширення ММХО, MMXl, MMX2, ММХЗ, ММХ4, ММХ5, ММХ6, ММХ7
Регістри MMX-розширення з плаваючою точкою ХММО, ХММ1, ХММ2, ХММЗ,, ХММ4, ХММ5, ХММб, ХММ7
Регістри співпроцесора ST (0), ST (1), ST (2), ST (3), ST (4), ST (5), ST (6), ST (7) призначені для написання програм, що використовують тип даних з плаваючою точкою
Регістри розширення х87 FPU: R0, R1, R2, R3, R4, R5, R6, R7
29. Регістри процесора архітектури Intel64
16 целочисленных 64-битных регистра общего назначения (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 — R15), 8 80-битных регистров с плавающей точкой (ST0 — ST7), 8 64-битных регистров Multimedia Extensions (MM0 — MM7, имеют общее пространство с регистрами ST0 — ST7), 16 128-битных регистров SSE (XMM0 — XMM15), 64-битный указатель RIP и 64-битный регистр флагов RFLAGS.
Джерело: http://habrahabr.ru/company/intel/blog/93831/
30. Регістри загального призначення.
Особливість цих регістрів полягає в тому, що можлива адресація їх як одного цілого чи слова як oднобайтової частини. Лівий байт є старшою частиною (high), a правий - молодшою частиною (low).
1. Регістр AX. Регістр AX є основним суматором і застосовується для всіх операцій уведення-висновку, деяких операцій над рядками і деяких арифметичних операцій.
2. Регістр BX. Регістр BX є базовим регістром. Це єдиний регістр загального призначення, що може використовуватися в якості "індексу" для розширеної адресаціі. Інше загальне застосування його - обчислення.
3. Регістр CX. Регістр CX є лічильником. Він необхідний для керування числом повторень циклів і для операцій зрушення уліво або вправо.
4. Регістр DX. Регістр DX є регістром даних. Він застосовується для деяких операцій уведення/висновку і тих операцій множення і розподілу над великими числами, які використовують реєстрову пару DX і AX.
Будь-які регістри загального призначення можуть використовуватися для додаваня і вирахування як 8-ми, так і 16-ти бітових значень.
Джерело: http://bibliofond.ru/view.aspx?id=445652
