Теор вопроси2

Що таке префікс команди?

Що таке макрос?

Макрогенератор замість посилання підставляє в текст програми текст самого макросу.

Можна завантажити в EAX, змінити біти, потім записати назад. Можна користуватися командами змінюють прапори (наприклад, CLC, STD, CLI).

Як скористатися даними з сегмента без іспользованіяASSUME?

Використовуючи префікс заміни сегмента.

Способи передачі параметрів в процедуру?

По поверненню значенням

Які з перерахованих команд написані без помилок?

Mov ah, byte ptr a

Mov ax, dword ptr a

Чим команда відрізняється від директиви?

Команда - це символьна форма запису машинної команди. Директива - це наказ асемблеру. При трансляції програми команди перетворюються в машинні коди, а директиви не транслюються, і не перетворюються в машинні коди.

Скільки команд виклику підтримує П2?

Чому в діректівеPUBLICне вказується тип змінної.

Компілятор дізнається тип змінної, описаної в PUBLIC, з опису самої змінної.

Що означає поняття «перейменуванням регістрів»

Чи означає, що одночасно можуть виконуватися декілька інструкцій посилаються на один і той же логічне ім'я регістра, якщо звичайно, між ними немає фактичних залежностей за даними. Перейменування регістрів дозволяє обійти архітектурне обмеження (всього 8 РОН), на можливість паралельної обробки інструкцій. Процесори з перейменуванням регістрів фактично мають більше 8ми РОН, і при запису проміжних результатів встановлюється відповідність логічних імен та фізичних регістрів.

Що розуміється під поняттям «сегментування»

Скількома операндами може оперувати команда процесора П2?

Операція команди поділяються на микрооперации, можуть виконуватися паралельно.

Чим макрос відрізняється від повторення?

За допомогою блоку повторення один раз описується лише певну частину програми, який потім копіюється потрібне число раз макрогенератором, причому копії розташовуються поруч один з одним.

Скільки префіксів може використовуватися в команді?

Що таке макрогенератор?

Макрогенератор - це спеціальний транслятор, який здійснює макрогенерацій програми, тобто переведення її на чисту мову асемблера (без макросредств).

Приклад п'яти операторів ЯА?

Складові типи даних П2?

Бітова рядок, бітове поле.

Що таке невпорядковане виконання команд?

Це виконання команд не в тому порядку, в якому вони записані в програмі, а в порядку, передбаченому логікою програми

Що таке діректіваASSUME?

Це директива вказує асемблеру, з яким сегментом або групою сегментів пов'язаний той чи інший сегментний регістр. Як операнда «зв'язок» можуть використовуватися імена сегментів, імена груп ...

Загальний синтаксис ASSUME <пара>

де <пара> - <сегментный регистр>:<имя сегмента>

Чи можна номер сегмента передати як зовнішній параметр?

Що таке модуль, привести приклад?

Модуль - частина програми, вирішальну. Деяку підзадачу і більш-менш незалежну від інших частин (можна її оттранслировать незалежно від інших частин і потім об'єднати з ними.)

Привести приклад визначення константи.

У чому відмінність мітки від імені процедури?

Чи можна отримає прямий доступ до старших байтів розширеного регістра?

Чому чим більше конвеєрів, тим більше продуктивність?

З'являється можливість одночасного виконання одночасної кількості команд.

Як діректіваINVOKEсвязана сPROTO?

Порівняння макросів процедур

І макрос і процедура описуються в програмі один раз. В обох випадках в потрібних місцях програми ми вказуємо короткі посилання на цей опис. Таким чином, з точки зору написання тексту програми, особливої ​​різниці між макросами і процедурами немає.

Різниця стає зрозумілою після трансляції програми. У оттранслировать програмі процедура так і залишається в єдиному екземплярі, а при використанні макросу його тіло підставляється у всі місця, де ми вказали звернення до нього.

Для чого потрібен сегментний регістр.

Якщо один операнд знаходиться в регістрі, то де може бути другий?

Скількома операндами може оперувати команда процесора П2?

За допомогою директиви EQU можна визначити ім'я, що означає не тільки число, а й інші конструкції, а за директивою присвоювання можна визначити тільки числову константу. Константи, описані за допомогою директиви привласнення на відміну від констант, визначених за директивою EQU і їх можна перевизначати.

Під константу, певну за допомогою EQU не виділяється пам'ять, а під константу, певну за допомогою »=» виділяється.

Як здійснюється доступ до даних, описаним / неописаним в деяких сегментах?

Через вказівку сегмента.

Сегментування зовнішніх імен в сегменті / поза сегменті?

У АЯ існують три правила сегментування зовнішніх імен:

Зовнішні імена констант НЕ сегментируются

Зовнішні мітки та імена процедур (тобто з типом NEAR і FAR) завжди сегментируются по регістру CS, причому для далеких міток і процедур завжди формуються далекі переходи, а для близьких - близькі переходи. Приклад: EXTRN L: FAR, M: NEAR; ....; Call far ptr L; Call near ptr M

Для зовнішніх імен змінних (byte, word, dword) діють наступні правила:

якщо директива EXTRN з ім'ям розміщена поза будь-якого програмного сегмента, то будь-яка команда з цим зовнішнім ім'ям транслюється без префікса, тобто вважається, що це ім'я має сегментуватися по регістру, який в даній команді мається на увазі за замовчуванням

якщо директива EXTRN з ім'ям розміщена всередині програмного сегмента, тоді це зовнішнє ім'я за замовчуванням сегментируются за тим же регістру, що і всі імена з цього сегмента.

Яка команда ізменяетDX?

Визначення константного виразу.

Константним виразом називають сукупність операндів і операторів, де операнди є константи або символи, використовувані в програмі для подання значення (символ вважається константою, якщо від визначено директивою EQU або оператором знакового рівності "="), а операнди виконують арифметичні (або інші, наприклад логічні) операції над операндами, значенням, якого завжди є ціле число.

Що таке сегмент?

Сегмент - це область пам'яті до 64 Кб.

Два восьми бітних поля, які вказують поточний стан відповідного регістра.

Як визначається точка входу в програму?

Де формується код умови при виконанні команд порівняння вFPU?

Чому процесор з великим числом ступенів конвеєра має більшу швидкодію?

Як розташовуються дані в пам'яті?

Які команди змінюють регістрDX?