logo
ООП для Заоч / Пинчук Лозовская Программир на С

12.2. Вправи

Вправа 1

Напишіть функцію для впорядкування одновимірного масиву типу int по зменшенню. Отримайте і проаналізуйте асемблерний текст цієї функції. Які існують можливості для вдосконалення коду функції?

Вправа 2

Напишіть програму, яка вводить значення двох змінних типу int, виконує операцію обміну значеннями для цих змінних і виводить результат на екран. Для програмування операції парного обміну застосувати ассемблерну вставку (asm-послідовність). Алгоритм обміну значеннями реалізувати без застосування буферної змінної (шляхом використання регістрів процесору).

Напишіть функцію для виконання операції парного обміну, отримайте її ассемблерний код. Покажіть, що виконання ассемблерної вставки потребує меншого часу, ніж виконання відповідної функції.

Вправа 3

Напишіть програму, яка виводить на екран значення із 64-бітового регістру процесора TSC (лічильник тактів процесора). Програма повинна виводити два цілих 4-х байтових значення: старші 32 розряди і молодші 32 розряди вказаного регістру.

Вправа 4

Напишіть функції для точного вимірювання проміжку часу. Застосувати 64-бітовий регістр процесору TSC. Перша з функцій timer_init повинна виконувати збереження поточного стану регістру TSC. Друга функція - timer_val повинна повертати проміжок часу з моменту виклику функції timer_init у тактах процесору як цілочислове значення.