Який механізм доступу до регістрів даних використовується в співпроцесорі і8087.
LIFO
Яку операцію і над якими операндами буде здійснено після виконання вказаної команди співпроцесора іх87 (FSUB ST(2), ST).
ST(2) <- ST(2) – ST(0)
Після порівняння двох операндів в співпроцесорі необхідно здійснити розгалуження алгоритму по умові А > B. Який варіант наведеної програми є правильним і задовольняє цій умові.
fld B
fcom A
fstsw ax
sahf
jb goal
Який регістр співпроцесора і8087 вказує про сутність даних в його регістрах R0…R7.
TWR
Який файл при програмуванні мовою асемблера під Windows не містить прототипів API функцій.
windows.inc
Яке значення буде в регістрі AX після виконання заданого фрагменту програми мовою асемблер для процесора іх86.
.386
.data
L1 db '0123456789ABCDEF'
L2 dw 101B,101q,101h
.code

mov ebx,offset L2-16
mov edx,1
mov ax,[ebx][edx*4]

end
AX <- 3534h
7. В чому основні принципові відмінності в організації системи переривань мікропроцесорів іх86 в захищеному режимі в порівнянні з реальним режимом роботи
Використовується таблиця дискрипторів переривань без обмеження доступу.
8. Який із наведених способів захисту резидентних програм від повторного завантаження є найбільш ефективним при використанні каскаду обробників.
Використання ехо-сигналів та мультиплексних переривань.
9. Які функції інтерфейсу прикладного програмування (API) дозволяють найбільш ефективно вирішувати задачі системного програмування в сучасних операційних системах.
Функції API рівня ОС.
10. Вкажіть яка з наведених послідовностей асемблерних команд забезпечує коректне переключення в каскаді обробників переривань.
pushf
call far ptr NewISR
Скільки переглядів заданого фрагменту асемблерної програми необхідно здійснити для створення таблиці символьних імен.
A EQU B
B EQU C
D EQU 10
C EQU 100
mov ax, A

Від. 3.
Який тип мови за класифікації Хомського найчастіше використовується для задання граматики сучасних мов програмування.
Контексно - вільні мови
Формально граматика G визначається як четвірка G (VT, VN, P, S) Яку множину називають повним алфавітом граматики.

Який із виразів відповідає заданій граматиці:
<expr> ::= <term> + <term> | <term> - <term>
<term> ::= <fact> * <fact> | <fact> / <fact> | <fact>
<fact> ::= <ident | (expr) | intconst
Від. немає правильної відповіді ( a + c*(d - b) ).
Визначіть кількість різних лексичних класів для заданого оператора мови С:
c = a +b – 1;
Від. немає правильної відповіді (5).
Які перевірки здійснюються на етапі синтаксичного аналізу при розробці трансляторів.
Відповідність конструкцій мови програмування правилам граматики.
На якій фазі компіляції здійснюється перевірка операторів виклику процедур і функцій на предмет узгодження фактично-формальних параметрів.
При семантичному аналізі.
Який вид оптимізації в компіляторах враховує особливості обчислювального середовища.
Машинно-залежна оптимізація.
На якій із зазначених фаз компіляції створюється об’єктна програма.
Фаза проміжного представлення.
Який із варіантів компонування об’єктних модулів потребує більше одного модуля завантаження.
Статичне компанування.
21. Який тип переривань є синхронним до окремого обчислювального процесу незалежно від архітектури компютерної системи.
Програмні переривання.
Яке значення буде в регістрі AX після виконання заданого фрагменту програми мовою асемблер для процесора іх86.
.386
.data
L1 dw 101B,101,101h
L2 db '0123456789ABCDEF'
.code

mov ebx, 2
mov esi, 2
mov ax, word ptr L2 [ebx][esi*2]

end
AX <- 3736h
Яку операцію і над якими операндами буде здійснено після виконання вказаної команди співпроцесора іх87 (FSUBR ST(0), ST(1)).
ST(0) <- ST(1) – ST(0).
Для чого використовують бібліотеки при програмуванні під Windows.
kernel32.dll – містить функції взаємодії з пам’ятю і керування процесами.
user32.dll - містить функції для побудови графіків і інтерфейсів.
gdi.dll - відповідає за роботу дисплею.
Яке значення буде в регістрі AX після виконання заданого фрагменту програми мовою асемблер для процесора іх86.
.386
.data
L1 dw 101B,101,101h
L2 db '0123456789ABCDEF'
.code

mov edx, offset L2
mov edi, 1
mov eax, [edx][edi*4] – 25 mod 3

end
AX <- 3433h
Після порівняння двох операндів в співпроцесорі необхідно здійснити розгалуження алгоритму по умові А > = B. Який варіант наведеної програми є правильним і задовольняє цій умові.
fld A
fcom B
fstsw ax
sahf
jnb goal
fld B
fcom A
fstsw ax
sahf
jna goal
Який еквівалентний клас розпізнавача відповідає мові з контекстно-вільною граматикою за ієрархією Хомського.
Однобічні недетермінальні автомати з магазинною пам’ятю.
Який компілятор буде створено при застосуванні методу розкрутки, як показано на Т – діаграмі:
KA = KA(KS): L>A.
Яка із зазначених фаз компіляції враховує особливості форматування тексту програми.
На фазі оптимізації
Який варіант хеш-функції є прийнятим для створення таблиці представлень імен при довжині індентифікатора n - символів і довжині хеш-списку H.
Hash (id) = (id0 + … + idn-1) / H
Скільки екземплярів для всіх зовнішніх представлень індентифікаторів зберігається у таблиці представлень.
По одному екземплярі всіх зовнішніх представлень ідентифікаторів.
Яка із зазначених фаз компіляції перевіряє програму на відповідність граматиці мови програмування.
При синтаксичному аналізі.
На якій фазі компіляції програма перевіряється на відповідність контекстним умовам граматики мови програмування.
Фаза семантичного аналізу.
На якій фазі компіляції перевіряється еквівалентність типів змінних в операторах вхідної програми.
Фаза семантичного аналізу.
На якій із зазначених фаз компіляції можлива оптимізація вхідної мови.
Від. немає правильної відповіді (на фазі оптимізації).
Нехай задана граматика:
E>E+T | E-T | T; T>T*F | T/F | F; F>num | (E).
Застосуйте перетворення для отримання еквівалетної граматики з метою усунення лівої рекурсії.
E > T | TE '
E ' > +T | +TE '
T > F | FT '
T '> *F | *FT '
F > (E) | num
Який із наведених методів аналізу має побудову вузлів синтаксичного дерева від кореня до листків.
Низхідні аналізатори.
Який із наведених методів аналізу має побудову вузлів синтаксичного дерева від листків до кореня.
Висхідні аналізатори.
Задано прототип функції мовою С, яка здійснює пошук кількості входжень заданого символу в облкасть пам’яті між двома адресами:
int charcount (char *addr1, char *addr2, char ch)
Задано прототип функції мовою С, яка здійснює пошук кількості входжень заданого символу в рядок тексту, який закінчується нуль – символом:
int charcount (char *str, char ch)
Задано прототип функції мовою С, яка здійснює обнулення області пам’яті, де addr1, addr2 – адреси початку та кінця обнулення пам’яті:
void memset (char *addr1, char *addr2)
А) Напишіть мовою асемблер фрагмент виклику цієї функції в модулі С (як це зробить компілятор).
В) Створіть асемблерний модуль реалізація цієї процедури для виклику із мови С.
Написати програму для обчислення виразу з використанням математичного співпроцесора:
y = a*sin(c-b)
де a і b - змінні цілого типу, а c - дійсного типу.
y = b*c - cos(a/d)
де a і b - змінні цілого типу, а c і d - дійсного типу.
y = tg (a + c / 4 ) – d
де a - дійсного типу, a c і d - змінні цілого типу.
Переходи для беззнакових даних.
Мнемоніка
Опис
Прапорці, що перевіряються

JE/JZ
Перехід, якщо рівно/нуль
ZF

JNE/JNZ
Перехід, якщо не рівно/не нуль
ZF

JA/JNBE
Перехід, якщо вище/не нижче або рівно
ZF,CF

JAE/JNB
Перехід, якщо вище або рівно/ не нижче
CF

JB/JNAE
Перехід, якщо нижче/не вище або рівно
CF

JBE/JNA
Перехід, якщо нижче або рівно/не вище
CF,AF


Переходи для знакових даних.
Мнемоніка
Опис
Прапорці, що перевіряються

JE/JZ
Перехід, якщо рівно/нуль
ZF

JNE/JNZ
Перехід, якщо не рівно/не нуль
ZF

JG/JNLE
Перехід, якщо більше/не менше або рівно
ZF,SF,OF

JGE/JNL
Перехід, якщо більше або рівно/ не менше
SF,OF

JL/JNE
Перехід, якщо менше/не більше або рівно
SF,OF

JLE/JNG
Перехід, якщо менше або рівно/не більше
ZF,SF,OF


Спеціальні арифметичні перевірки.
Мнемоніка
Опис
Прапорці, що перевіряються

JS
Перехід, якщо є знак(від’ємне)
SF

JNS
Перехід, якщо немає знаку(додатнє)
SF

JC
Перехід, якщо є перенос (аналогічно JB)
CF

JNC
Перехід, якщо немає переносу
CF

JO
Перехід, якщо є переповнення
OF

JNO
Перехід, якщо немає переповнення
OF

JP/JPE
Перехід, якщо паритет парний
PF

JNP/JP
Перехід, якщо паритет непарний
PF

.cpp
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
extern "C"
{
int callk();
float y,c;
long a,b;
}
int main ()
{
cout<<"y = a*sin(c - b)\n"<<endl;
cout<<"a =";cin>>a;
cout<<"c =";cin>>c;
cout<<"b =";cin>>b;
callk();
cout<<"y ="<<y;
getch();
return 0;
}
.asm
.386
.MODEL Flat
EXTRN _y:DWORD,_a:DWORD,_b:DWORD,_c:DWORD
.DATA
.CODE
PUBLIC _callk
_callk PROC
finit
fld _c
fisub _b
fsin
fimul _a
fstp _y
ret
_callk ENDP
END
.cpp
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
extern "C"
{
int callk();
float y,c,d;
long a,b;
}
int main ()
{
cout<<"y = b*c - cos(a / b)\n"<<endl;
cout<<"b =";cin>>b;
cout<<"c =";cin>>c;
cout<<"a =";cin>>a;
cout<<"d =";cin>>d;
callk();
cout<<"y ="<<y;
getch();
return 0;
}
.asm
.386
.MODEL Flat
EXTRN _y:DWORD,_a:DWORD,_b:DWORD,_c:DWORD,_d:DWORD
.DATA
temp0 dd 0.0
temp1 dd 0.0
.CODE
PUBLIC _callk
_callk PROC
finit
fild _b
fmul _c
fstp temp0
fild _a
fdiv _d
fcos
fstp temp1
fld temp0
fsub temp1
fstp _y
ret
_callk ENDP
END
.cpp
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
extern "C"
{
int callk();
float y,a;
long c,d;
}
int main ()
{
cout<<"y = tg(a + c / 4) - d\n"<<endl;
cout<<"a =";cin>>a;
cout<<"c =";cin>>c;
cout<<"d =";cin>>d;
callk();
cout<<"y ="<<y;
getch();
return 0;
}
.asm
.386
.MODEL Flat
EXTRN _y:DWORD,_a:DWORD,_c:DWORD,_d:DWORD
.DATA
const dd 4.0
.CODE
PUBLIC _callk
_callk PROC
finit
fild _c
fdiv const
fadd _a
fptan
fdiv
fisub _d
fstp _y
ret
_callk ENDP
END