

Необходимо перемножить в программе два одинарных слова, находящихся в регистрах AX и CX, командой mul cx. Какие регистры изменятся после выполнения данной операции?
AX и BX
AX и DX
BX и DX
SS и SP
AX и CX
Вам необходимо инициализировать видеорежим 320x200x8 посредством прерывания 10h Video BIOS. Какое значение следует поместить в регистр AX для решения поставленной задачи?
0113h
1300h
000Dh
0013h
0010h
Ваш обработчик прерывания от таймера, вызываемого 1000 раз в секунду, выполняется в течение 4 мс. В начале обработчика разблокируется контроллер прерываний и выполняется команда STI. Дальнейший код программы не содержит ошибок. Что произойдет при выполнении программы?
Переполнение стека и соответствующее исключение
Программа выполнится корректно
Исключение «вложенный вызов обработчика прерывания»
«Зависание» процессора
Переход процессора в режим останова
Укажите несуществующие способы адресации.
Косвенная регистровая адресация
Прямая адресация
Косвенная стековая адресация
Адресация по базе со смещением
Полная адресация
Для увеличения значения переменной myvar на 4 Вы решили использовать непосредственную и косвенную регистровую адресацию. Какой из нижеприведенных фрагментов программы позволит решить поставленную задачу?
mov si, offset myvar
inc [si]
mov ax, [myvar]
add ax, 4
mov [myvar], ax
add word [myvar], 2
add word ptr [myvar], 4
mov si, 4
add [myvar], si
Ваша программа, обеспечивающая циклическую «прокрутку» строки влево на 1 бит, работает некорректно. Первые два байта данных указывают длину строки и не участвуют в операции. В какой(их) строке(ах) программы содержится ошибка?
1 mov bx, [Str]
2 lea si, [Str + 2]
3 clc
4 Loop1:
5 rol byte ptr [si + bx - 1], 1
6 dec bx
7 jnz Loop1
8 mov bx, [Str]
9 adc byte ptr [si + bx - 1], 0
В строке 5
В строке 9
В строках 5 и 9
В строке 3
В строке 2
Укажите название видеорежимов, получаемых из стандартного видеорежима 320x200x8 и хранящих цветовую информацию во всех 4 плоскостях памяти видеоадаптера.
Mode Cool
Advanced Mode
Enhanced Video
Mode Y
Mode X
Какое прерывание используется для вызова основного набора функций DOS?
20h
01h
67h
21h
10h
Вы написали программу, но ее трансляция завершается предупреждением:
Warning: no entry point defined
Программа при этом не работает. Какие действия следует предпринять, чтобы устранить проблему, препятствующую запуску программы?
Определить метку START
Определить модель памяти
Указать метку точки входа в программу в директиве end
Задать начальный адрес ассемблирования директивой org
Использовать ключ транслятора w0 для подавления предупреждений
Какая команда является «парной» для оператора call?
jnz
jmp
pop
ret
jpe
Укажите корректные способы проверки на нахождение в режиме V86, обычно не приводящие к исключениям.
Загрузка из стека EFLAGS с измененным битом IF и проверка бита
Проверка флага VM в EFLAGS
Чтение регистра CR0 и проверка бита PE
Попытка перехода в защищенный режим (установка бита PE CR0)
Обработка результатов команды CPUID
Вы выполняете вызов процедуры командой call. Затем внутри процедуры Вы выполняете операции pop si и push si. Что окажется в регистре si после выполнения данной операции?
Значение si в данном случае точно охарактеризовать невозможно
Адрес начала процедуры
Адрес команды call, вызвавшей процедуру
Адрес следующей команды за командой call, вызвавшей процедуру
Адрес предыдущей команды перед командой call, вызвавшей процедуру
Вы пишете программу, обрабатывающую прерывание 21h в реальном режиме 80x86. По какому адресу следует поместить адрес обработчика прерывания?
0000h:0080h
0100h:0084h
0100h:0080h
0084h:0000h
0000h:0084h
За что может отвечать бит 7 байта атрибутов в цветном текстовом режиме видеоадаптера?
За прозрачность текста
За мерцание текста
За подчеркивание текста
За яркость текста
За яркость фона текста
Какой параметр функции DOS 42h часто используется для определения длины файла?
AL = 02h, CX:DX = FFFFFFFFh
AL = 00h, CX:DX = 00000000h
AL = 02h, CX:DX = 00000000h
AL = 00h, CX:DX = FFFFFFFFh
AL = 01h
Вы складываете два 128-битных числа:
mov eax, [Num1]
add eax, [Num2]
mov [Res], eax
mov eax, [Num1 + 4]
add eax, [Num2 + 4]
mov [Res + 4], eax
mov eax, [Num1 + 8]
add eax, [Num2 + 8]
mov [Res + 8], eax
mov eax, [Num1 + 12]
add eax, [Num2 + 12]
mov [Res + 12, eax]
На выходе данная последовательность команд иногда дает неверный результат. Какие изменения следует внести в код программы, чтобы исправить ошибку?
Каждая вторая команда add должна быть заменена на команду adc
Все команды add, кроме последней, должны быть заменены на команду adc
Все команды add должны быть заменены на команду adc
Все команды add, кроме первой, должны быть заменены на команду adc
Первая и третья команды add должны быть заменены на команду adc
Вы организуете плоскую модель памяти в защищенном режиме работы процессора. Какое минимальное количество заданных сегментных дескрипторов необходимо для решения поставленной задачи?
2
5
3
4
1
Вы заполняете таблицу дескрипторов. Какие поля дескрипторов следует использовать для задания размещения сегмента в линейной памяти?
Базовый адрес и лимит
Базовый адрес
Базовый адрес, лимит и признак присутствия
Базовый адрес и признак присутствия
Базовый адрес и тип
Одно из Ваших периферийных устройств использует сигнал NMI для сообщения об исключительной ситуации. Какое прерывание следует обрабатывать для получения этих сообщений?
10h
06h
0Ch
00h
02h
По каким адресам расположены первичный и вторичный контроллеры прерываний?
20h и 60h
60h и A0h
20h и A0h
40h и 80h
00h и E0h
Какую функцию VESA следует использовать для реализации двойной буферизации (double buffering) движущегося изображения в Вашей программе?
Функцию смены адреса начала окна A
Функцию смены адреса начала окна B
Функцию смены адреса начала кадра
Функцию синхронизации с разверткой
Функцию установки двойной буферизации
Что означает символ доллара (‘$’) в записи вида jmp $?
Запись ошибочна, символ доллара в аргументах команды недопустим
Символ доллара обозначает адрес точки входа в программу
Запись ошибочна, после символа доллара должно следовать шестнадцатеричное число
Символ доллара обозначает адрес команды, следующей за текущей
Символ доллара обозначает адрес текущей команды, в данном случае – jmp
Для адресации массива данных Вы используете DS:[BP]. Заменив DS:[BP] на DS:[BX], Вы обнаруживаете увеличение производительности программы. Что явилось причиной этого события?
Регистр BP является регистром специального назначения и не предназначен для адресации блоков памяти
Для регистра BP сегментом по умолчанию является SS. DS в случае использования BP является переопределением
Процессор оптимизирует выполнение команд с использованием регистров DS и BX одновременно
Операции с регистром BX выполняются быстрее, чем с BP
Использование регистра BP приводит к простоям процессора
Программа содержит в памяти массив телефонных номеров. Вы решили обращаться к массиву через его адрес в регистре BP, начало ячейки массива указывать в регистре SI, а элемент ячейки задавать явно. Какой способ адресации следует использовать в данном случае?
Адресация по базе и индексу со смещением
Косвенная адресация по базе со смещением
Прямая адресация
Адресация по базе и индексу
Полная адресация
Почему в реальном режиме работы процессора значение сегментного регистра называется сегментом, а в 32-битном защищенном – селектором?
В реальном режиме процессора есть сегментация, а в защищенном режиме работы – нет
В реальном режиме значение сегментного регистра указывает на адрес сегмента, а в защищенном – на дескриптор
В защищенном режиме работы сегментный регистр выбирает сегмент, а в реальном – только указывает на него
В реальном режиме работы сегменты динамические, а в защищенном выбираются из фиксированного списка
В реальном режиме работы сегменты фиксированные, а в защищенном режиме могут изменяться посредством дескрипторов
Вы вызываете из Вашей программы процедуру, написанную на языке C:
push word 1234h
push eax
push dword ptr [parameter1]
call my_c_proc
ret
Но Ваша программа работает некорректно. В чем заключается причина ошибки?
C-конвенция вызовов использует передачу параметров с использованием регистра
C-конвенция вызовов предполагает снятие параметров со стека на вызывающую программу. Отсутствует команда add sp
C-конвенция вызовов предполагает снятие параметров со стека на вызывающую программу. Отсутствует команда add sp, 10
Не создан кадр входа в процедуру в вызывающей программе
C-конвенция вызовов предполагает передачу параметров по ссылкам, а не по значению
Почему команду xor ax, ax не во всех случаях можно использовать для обнуления регистра AX?
Команда xor влияет на другие регистры
Команда xor влияет на флаги
Команда xor в определенных случаях выполняется медленнее
Команда xor не всегда обнуляет регистр
Команда xor не может работать с регистром AX
Вы используете команду div cx для деления числа в регистре AX на число в регистре CX. После деления Вы обнаруживаете, что результат в регистре AX не соответствует ожидаемому. Что является причиной возникновения данной ситуации?
Команда div в некоторых процессорах работает некорректно
Команда div использует в качестве делимого число в паре регистров DX:AX
Число для деления командой div должно находиться в регистре DX
В регистре CX должен находиться не делитель, а делимое. Делитель же должен находиться в регистре AX
Команда div использует в качестве делимого число в паре регистров BX:AX
Вы пишете обработчик аппаратного прерывания IRQ1. После любого нажатия клавиши Ваша программа зависает. В обработчике прерываний ошибок нет, обработчик завершается командой iret. В чем заключается причина проблемы?
Обработчик аппаратных прерываний должен завершаться посылкой сигнала PIC – выводом значения 20h в порт 20h и командой ret
Обработчик аппаратных прерываний должен завершаться посылкой сигнала PIC – выводом значения 00h в порт 21h и командой iret
Обработчик аппаратных прерываний должен завершаться командой ret
Обработчик аппаратных прерываний должен завершаться посылкой сигнала PIC – выводом значения 20h в порт 20h и командой iret
Обработчик прерывания IRQ1 должен завершаться посылкой сигнала клавиатурному контроллеру и командой iret
Какой математической операции эквивалентна приведенная подпрограмма?
fld [x]
fld [y]
fld [x]
fsubp
fld st(0)
fmulp
fxch
fsqrt
fdivp
ST(0) = (x - y) ^ 2 / sqrt(x)
ST(0) = (y - x) ^ 2 / sqrt(x)
ST(0) = (y - x) ^ 2 / sqrt(y)
ST(0) = sqrt(y - x) / (x ^ 2)
ST(0) = sqrt(x) / (y – x) ^ 2
Вам необходимо включить режим страничной адресации процессора. Какой бит системного регистра следует использовать для решения поставленной задачи?
Бит PG (0) регистра CR3
Бит PE (0) регистра CR0
Бит PG (31) регистра CR0
Бит PG (31) регистра CR1
Бит PE (0) регистра CR1
По каким адресам портов находятся стандартные последовательные порты COM1-COM4?
378h, 278h, 368h, 268h
378h, 278h, 3BCh, 2BCh
3F8h, 2F8h, 3E8h, 2E8h
378h, 3F8h, 278h, 2F8h
378h, 398h, 3D8h, 3F8h
Необходимо выполнить команду загрузки 32-битного регистра EAX в реальном режиме. Какой префикс перед командой загрузки AX укажет процессору использовать 32-битный операнд?
65h
0F0h
66h
64h
67h
Какие два типа драйверов устройств (SYS) существуют в среде DOS?
Режима ядра
Блочные
Символьные
Реального времени
Режима пользователя
Ваша программа должна вызвать процедуру ReCalc только в случае, если число в регистре AX после операции сложения окажется больше, чем 32767.
mov ax, [var1]
call DoCalc
add ax, cx
?
call ReCalc
Label1:
Укажите корректную команду перехода в месте, отмеченном знаком вопроса.
jnz Label1
js Label1
jc Label1
jns Label1
jz Label1
Вы передаете маску «ab?c*.d?f» функции DOS 4Eh (Find First). Какие файлы могут быть возвращены в результате поиска функциями 4Eh/4Fh по этой маске?
abac.dog
abcdfef.ddf
abbcdefg.daf
youfind.me
abzcezz.dif
Какой из регистров общего назначения чаще всего используется в качестве счетчика?
AX
BP
SP
CX
SI
Вам необходимо получить побитовое представление числа. Какой флаг будет участвовать в операции проверки установки/сброса каждого из битов числа при условии, что используется команда сдвига?
Флаг нуля
Флаг полупереноса
Флаг переполнения
Флаг переноса
Флаг знака
В программе использованы упакованные двоично-десятичные числа. Какая последовательность данных является принципиально неверным двоично-десятичным числом?
db 01h, 02h, 03h, 04h, 05h
dw 1234h, 5577h, 98h, 01h
db 00h, 12h, 98h, 37h
dw 1200h, 7000h, 129Bh, 6222h
dd 6, 7, 8, 9
Командную строку для вызываемой программы
ASCIIZ-строку имени программы
Environment (набор переменных окружения)
EPB (Exec Parameter Block)
Два блока FCB (File Control Block)
При сборке программы Вы постоянно получаете сообщение: "Warning! No stack segment". Какую директиву необходимо добавить к программе, чтобы исправить ошибку?
segment STACK ‘DATA’
.STACKDEF
.STACK
#DEFINE STACK
STACKSEG
Вам необходимо очистить текстовый видеобуфер в видеорежиме 03h. Вы используете следующий фрагмент программы:
1 cld
2 mov ax, 0B000h
3 mov es, ax
4 xor di, di
5 mov ax, 0700h
6 mov cx, 4000
7 rep stosw
Очистки экрана не происходит. В какой строке программы содержится ошибка?
6
4
1
2
7
Какие регистры относятся к регистрам общего назначения процессоров 80x86?
AX, BX, CX, DX
AX, BX, CX, DX, SI, DI, BP, SP
AX, DX
AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, ES, SS
AX, BX, DX, SI, DI, SP
Вы перехватываете прерывание 1Ch для слежения за временем. При каждом вызове прерывания 1Ch Вы увеличиваете внутренний счетчик в программе на 1. Что необходимо сделать со счетчиком, чтобы получить время в секундах?
Счетчик уже содержит время в секундах, дополнительных действий не требуется
Умножить на 16
Разделить на 1000
Умножить на 18.2
Разделить на 18.2
Какие две функции DOS используются для получения и установки векторов обработчиков прерываний?
15h
17h
35h
25h
27h
Вы последовательно распределяете два блока памяти объемом 4 килобайта. После записи 8 килобайт по адресу первого блока при вызове функции 48h DOS Вы получаете ошибку: «Memory allocation error». Что является причиной возникновения данной ситуации?
Блоки памяти не были инициализированы перед записью, и контроллер памяти обнаруживает ошибку
Срабатывает защита памяти на уровне сегментов, не давая выйти за границы первого блока памяти
Запись 8 килобайт в первый блок повреждает MCB следующего блока, разрушая связанный список блоков памяти DOS
DOS обнаруживает запись в разные блоки памяти и не допускает этого
Срабатывает защита памяти на уровне страниц, не давая выйти за границы первого блока памяти
Необходимо адресовать большое количество данных, находящихся в стеке. Какие два регистра придется использовать наиболее часто, поскольку они по умолчанию связаны с сегментным регистром SS?
SP
SI
BP
DX
CS
Вы сохраняете в стеке регистры AX, BX, CX, DX. В каком порядке необходимо извлекать их из стека?
DX, CX, BX, AX
AX, BX, CX, DX
DX, BX, CX, AX
AX, DX, BX, CX
AX, CX, BX, DX
Вам необходимо сложить 64-битное число, используя две операции 32-битного сложения. Какие команды следует использовать для решения поставленной задачи?
add и sub
add и adc
add и shl
Только add
Только adc
В сегменте PSP хранятся данные системы, которые необходимо освободить
По умолчанию выполняемой программе отводится вся доступная память
Под сегмент PSP отводится слишком много памяти
Иначе дочерний процесс очистит область памяти, используемую сегментом PSP
Для всех сегментов PSP используется одна область свободной памяти
Какое действие выполняет команда out dx, ax?
Выводит байт из регистра AL в порт с номером, указанным в регистре DX, выводит байт из регистра AH в порт с номером, на единицу большим указанного в регистре DX
Выводит последовательно 2 байта регистра DX в порт с номером, указанным в регистре AX
Выводит байт из регистра AH в порт с номером, указанным в регистре DX, выводит байт из регистра AL в порт с номером, на единицу большим указанного в регистре DX
Выводит последовательно 2 байта регистра AX в порт с номером, указанным в регистре DX
Выводит два байта регистра AX в 16-битный порт с номером, указанным в регистре DX
Какие два прерывания могут использоваться для низкоуровневой (путем перехвата) и высокоуровневой (путем вызова BIOS) обработки клавиатуры?
09h и 16h
01h и 16h
10h и 16h
09h и 10h
01h и 09h
Вы выводите картинку в видеобуфер блоками по 64 килобайта через стандартное окно по адресу 0A000h:0000h в видеорежиме VESA 640x480x16bit, используя функцию 05h (смену банка) VESA. При выводе картинка отображается некорректно и не заполняет весь экран. Укажите наиболее вероятную причину проблемы.
Сегментный адрес окна видеобуфера не равен 0A000h
Видеоадаптер не поддерживает видеорежим 640x480x16bit
Размер окна видеобуфера не равен 64 килобайтам
Гранулярность банков видеопамяти не равна 64 килобайтам
Функция смены банка не поддерживается данной версией VESA
Укажите номер прерывания процессора, используемый для обработки аппаратного прерывания от таймера 0 PIT.
16
9
48
8
Сколько уровней привилегий для приложений существует в 32-битном защищенном режиме процессоров 80386 и выше?
1
5
4
2
3
Какая команда процессора 80x86 используется для инвертирования флага переноса?
xorc
clc
invc
cmc
negc
Какие действия выполняются при вызове дальней процедуры командой call?
В стек помещается адрес команды call
Регистры CS и IP загружаются адресом вызываемой процедуры
В стек помещается адрес следующей за командой call команды
Если команда условная, то проверяется условие перехода
Обнуляются регистры AX, BX, CX и DX
Вы пишете программу, фрагмент которой приведен ниже. Какую строку нужно добавить в данный фрагмент кода вместо троеточия, чтобы создать корректную COM-программу?
.model tiny
.code
START:
; продолжение тела программы
…
int 20h
end START
org 100h
uses COM
org 1000h
.data
.comprogram
Вы создали таблицу страниц. В какой системный регистр следует загрузить указатель на каталог таблицы страниц?
CR1
CR3
CR2
CR0
PCT
Какое поле заголовка COM-программы используется для определения адреса точки входа?
Поле CS:IP по адресу 0014h
У COM-программы нет заголовка, она стартует с адреса CS:0000h
Поле SS:SP по адресу 000Eh
Адрес старта программы передается ей DOS в регистрах DS и DX
У COM-программы нет заголовка, она всегда стартует с адреса CS:0100h
Вы используете определенную ячейку памяти для хранения адреса дальнего перехода в реальном режиме работы процессора. В каком порядке Вы будете загружать в нее адрес?
Два байта – сегментный адрес
Первые два байта – смещение, следующие два байта – сегментный адрес
Смещение и сегментный адрес с побайтным чередованием
Два байта – смещение
Первые два байта – сегментный адрес, следующие два байта – смещение
В разных процедурах своей программы Вы используете математический сопроцессор и технологию MMX. Однако, после вызова процедуры, использующей MMX, Вы обнаруживаете, что процедуры, использующие математический сопроцессор, начинают работать некорректно. В чем заключается причина данной проблемы?
В процессорах архитектуры x86-MMX содержится ошибка, приводящая к невозможности совместного использования команд MMX и FPU
Использование команд FPU после команд MMX требует предварительного вызова специальной команды процессора
Использовать одновременно расширения MMX и математический сопроцессор невозможно в принципе
Расширения MMX используют регистры математического сопроцессора, приводя их в специальное состояние
Использование MMX приводит к отключению команд FPU и наоборот
Что называется прерыванием в рамках архитектуры 80x86?
Сигнал, который заставляет основную выполняемую задачу завершить свое выполнение
Сигнал, который заставляет процессор отвлечься от исполнения основной задачи и перейти к обработчику прерывания
Любой переход к обработчику прерывания
Вызов процедуры обработчика прерывания командой int
Экстренный останов выполняемой задачи вследствие возникшей ошибки
Какую команду используют вместо команды mul для умножения регистра на число, являющееся степенью двойки?
rcl
ror
rol
shl
shr
Почему после распределения 65536 байт объем свободной памяти DOS сокращается на 65550 байт?
16 байт используются DOS для хранения блока MCB
Число 65536 выходит за границы сегмента и использует дополнительные 16 байт
16 байт используются для выравнивания блока памяти
Количество распределяемых параграфов памяти должно делиться на 10
Между распределяемыми блоками памяти должен оставаться «зазор» в 16 байт
Вы обращаетесь к странице линейной памяти, отсутствующей в данный момент в физической памяти. Возникает исключение «ошибка страницы». Что в общем случае должен сделать обработчик исключения?
Дождаться аппаратного прерывания «страница загружена» и продолжить выполнение программы
Сообщить задаче новый адрес страницы и продолжить выполнение
Произвести «холодную» перезагрузку процессора
Попытаться подгрузить или создать страницу, если это возможно, в противном случае прервать выполняемую задачу
Сообщить пользователю об ошибке и продолжить выполнение программы
Какую команду следует использовать для перехода из одной процедуры в другую, если после выполнения второй процедуры необходимо вернуться в программу, вызвавшую первую процедуру?
loop
ret
call
jmp
nop
Какие три команды могут применяться для умножения числа в регистре на целое число?
mul
lea
adc
sub
add
Какова гранулярность распределения памяти в DOS?
4 байта
16 байт
256 байт
4096 байт
65536 байт
Как называется специальный дескриптор, используемый для переключения выполняемых задач в многозадачном режиме при переходе на любой адрес внутри него?
Переключатель
Шлюз задачи
Точка останова
Шлюз ловушки
Сегмент состояния задачи
Какое прерывание BIOS используется для работы с часами реального времени CMOS?
21h
1Ch
15h
1Ah
08h
Вам необходимо переслать блок памяти с использованием строковой команды MOVSW. В какие сегментные регистры следует загрузить адреса сегментов источника и приемника, чтобы не использовать переопределений в команде?
В SS – адрес источника, в DS – адрес приемника
В ES – адрес источника, в DS – адрес приемника
В DS – адрес источника, в ES – адрес приемника
В DS – адрес источника и приемника
В ES – адрес источника и приемника
Какой максимальный объем может иметь стек в реальном режиме работы процессора?
65536 байт
16 байт
Объем стека не ограничен
256 байт
4096 байт
В теле цикла для уменьшения одного из регистров используется код:
sub ax, 1
adc ax, 0
Какое значение после 100000 шагов выполнения цикла примет данный регистр, если исходное значение не определено?
255
65535
Исходное значение минус 100000 по модулю 65536
1
Как называются данные, следующие за телом EXE-программы и не загружаемые DOS в память?
Резерв
Трейлер
Аддон
Оверлей
Хвост
Вы выполняете условный переход в случае, если первый операнд команды сравнения меньше второго. Укажите состояние флагов CF и ZF в случае успешного перехода.
CF сброшен, ZF сброшен
CF установлен, ZF установлен
CF и ZF равны, но их состояние неизвестно
CF установлен, ZF сброшен
СF сброшен, ZF установлен
Вам необходимо организовать доступ любой выполняемой задачи к определенной области памяти. Вы создаете для этого отдельный сегмент. Куда следует поместить его дескриптор?
В сегментный регистр ES каждой задачи
В IDT
В PTE
В GDT
В LDT
Размер сегмента памяти в реальном режиме работы процессора равен…
16 байтам
4294967296 байтам
16384 байтам
65536 байтам
4096 байтам
Укажите 3 отличия архитектуры CISC от архитектуры RISC.
Команды архитектуры RISC позволяют задействовать все внутренние регистры процессора, команды архитектуры CISC – только определенные
Команды архитектуры RISC, как правило, выполняются быстрее, чем команды архитектуры CISC
Программы для архитектуры CISC, как правило, длиннее программ для архитектуры RISC
Команды архитектуры CISC управляют непосредственно логикой процессора (коммутацией), а команды RISC обрабатываются отдельными модулями процессора
В архитектуре CISC команды имеют переменную длину, в RISC – постоянную
Почему основной режим работы процессоров 80386 и выше называется защищенным?
В этом режиме защита данных операционной системы от несанкционированного доступа пользователя организуется на уровне процессора
В этом режиме невозможен запуск программ без авторизации
В этом режиме доступ к данным контролируется списками прав доступа (ACL)
В этом режиме организуется несколько независимых уровней привилегий для исполняемых приложений, ограничивается доступ к привилегированным командам, и сбои на низших уровнях не приводят к сбоям на высших
В этом режиме данные в памяти защищаются шифрованием
Какое количество дескрипторов страниц содержит каждый элемент нерасширенной (PAE=0) таблицы страниц?
1024
4096
256
128
512
Что называется атрибутами файла в DOS?
Флаги файла (скрытый, системный), права доступа к файлу
Флаги файла (скрытый, системный)
Длина файла, номер первого сектора файла на диске
Длина файла, номер первого сектора файла на диске, флаги файла (скрытый, системный), права доступа к файлу
Длина файла, флаги файла (скрытый, системный)
Вам необходимо вычислить абсолютный адрес в памяти, заданный регистрами DS и BX. Какую последовательность команд следует использовать для решения поставленной задачи?
mov dx, 0
mov ax, ds
shl ax, 4
rcl dx, 4
add ax, bx
rcl dx, 1
mov dx, 0
mov ax, ds
add ax, bx
adc dx, 0
mov dx, 0
mov ax, ds
add bx, bx
adc dx, 0
add bx, bx
adc dx, 0
add bx, bx
adc dx, 0
add bx, bx
adc dx, 0
add bx, ax
adc dx, 0
mov dx, 0
mov ax, ds
add ax, ax
adc dx, 0
add ax, ax
adc dx, 0
add ax, bx
adc dx, 0
mov dx, 0
mov ax, ds
add ax, ax
adc dx, 0
add ax, ax
adc dx, 0
add ax, ax
adc dx, 0
add ax, ax
adc dx, 0
add ax, bx
adc dx, 0
Почему прерывания 00-1Fh процессора 80x86 не рекомендованы для использования в качестве обработчиков аппаратных прерываний?
Эти прерывания используются для обработки исключений защищенного режима
Некоторые из этих прерываний процессором игнорируются
Их обработчики вызываются гораздо медленнее
Эти прерывания используются для реализации многозадачности
Они зарезервированы под системные программные прерывания
В чем заключается специальное назначение базовых (BX, BP) и индексных (SI, DI) регистров в реальном режиме работы процессора?
Адресация массивов данных с использованием этих регистров происходит быстрее
Эти регистры используются для пересылки блоков памяти строковыми командами
Только эти регистры могут использоваться для адресации массивов данных с использованием смещения
Эти регистры являются системными регистрами процессора, и все операции с ними выполняются быстрее
Базовые регистры используются в большинстве базовых математических операций, индексные - для хранения индексов баз данных
Вам необходимо сократить длину файла, открытого функцией DOS 3Dh, по текущему положению указателя. Какие действия следует предпринять для решения поставленной задачи?
Вызвать функцию DOS 40h с параметром CX = 0
Вызвать функцию DOS 3Fh с параметром CX = 0
Вызвать функцию DOS 40h с параметром BX = 0
Вызвать функцию DOS 3Fh с параметром BX = 0
Вызвать функцию DOS 41h
Какие две команды используются для обмена данными между младшей частью флагового регистра и регистром AH?
xcfa
sahf
sflags
fstor
lahf
Что называется линейным буфером кадра (linear framebuffer)?
Видеопамять, отображаемая целиком на какие-либо адреса линейной памяти
Область видеопамяти, используемая для хранения текущей отображаемой линии
Область физической системной памяти, используемая для хранения изображения
Область видеопамяти, используемая для хранения отдельной линии кадра
Видеопамять, линейно отображаемая в окне 64 кб 0A000h
Какую команду необходимо добавить в программу вместо пропущенной, чтобы в результате выполнения данного фрагмента кода минимальное число из регистров ax, bx и cx оказалось в регистре cx?
cmp ax, bx
jc Label1
mov ax, bx
Label1:
[Пропущенная команда]
jc Label2
mov cx, ax
Label2:
cmp cx, ax
cmp ax, cx
cmp bx, ax
mov ax, bx
cmp ax, bx
Что является обязательным для организации доступа к адресам памяти выше первого мегабайта в архитектуре IBM PC?
Использование защищенного режима
Использование специального менеджера памяти IBM
Включение управления «линией A20» адресной шины
Использование 32-битных регистров процессора
Использование страничной адресации
Чем является оператор cmp?
Командой завершения вычислений (от слова compute)
Командой вычитания, не сохраняющей результат
Самостоятельной командой сравнения
Командой сложения, не сохраняющей результат
Командой побитного сравнения числа
Что происходит при помещении данных в стек с указателем стека (регистром SP)?
Он задается регистром BP
Он копируется в регистр BP
Он уменьшается
Он остается без изменений
Он увеличивается
Для чего используется сегментный регистр CS?
Сегментный регистр CS всегда указывает сегментный адрес сегмента данных программы
Сегментный регистр CS может использоваться для любых целей по усмотрению пользователя
Сегментный регистр CS всегда указывает сегментный адрес текущей исполняемой процессором команды
Сегментный регистр CS всегда указывает сегментный адрес сегмента кода программы
Сегментный регистр CS всегда указывает сегментный адрес сегмента стека программы
Что представляет собой набор блоков памяти MCB DOS?
Односвязный список
Массив
Двоичное дерево
Двусвязный список
Дерево
Вы выполняете вывод строки на экран с использованием функции DOS 09h:
.code
mov ax, @Data
mov ds, ax
lea dx, String
mov cx, 12
mov ah, 09h
int 21h
mov ah, 4Ch
int 21h
.data
String db ‘Hello world!’
Ваша программа выводит на экран странную последовательность символов. В чем заключается причина ошибки?
Адрес строки должен задаваться в BX, а не в DX
Строка должна завершаться символом 24h (‘$’)
Строка должна завершаться символом 00h (ASCIIZ)
Неверно задан сегментный адрес в DS
Длина строки должна задаваться в BX, а не в CX
Используя для деления числа в DX:AX на число в CX команду div cx, Вы получаете прерывание 0. Какие две вероятные причины могли вызвать прерывание 0 в данной ситуации?
Регистр AX перед делением не равен 0
Регистр CX перед делением равен 0
Число в DX:AX слишком большое, и частное не помещается в регистр AX
Команда div cx не является корректной командой
Частное после деления равно 0
Вы обновляете разделяемый массив в памяти. Использование какой команды предотвращает возможность чтения данных этого массива другим процессором и внешними устройствами во время обновления?
noscpulock
deny
halt
break
В программе встречается следующая последовательность команд:
cmp ax, bx
jnc Label1
mov ax, bx
Label1:
Какие действия выполняет данный фрагмент кода?
Находит максимум из ax и bx и помещает его в ax
Помещает bx в ax
Находит максимум из ax и bx и помещает его в bx
Находит минимум из ax и bx и помещает его в ax
Находит минимум из ax и bx и помещает его в bx
Вы открываете файл журнала на запись, но не знаете, существует ли он на диске. Какие две функции DOS можно использовать, чтобы открыть файл в случае, если он существует, и создать его в случае, если он не существует?
Функцию 3Dh
Комбинацию функций 3Dh и 3Fh
Комбинацию функций 3Ch и 3Dh
Функцию 6Ch
Функцию 3Fh
Укажите специальный однобайтовый код команды int 3, используемой для организации отладочных точек останова в программе.
80h
0CCh
0FFh
44h
12h
В чем заключается основное отличие дальнего перехода от ближнего?
Дальний переход выполняется на расстояние больше 256 байт, ближний – на расстояние меньше 256 байт
Дальний переход – это переход между различными сегментами, ближний же выполняется в пределах сегмента
Дальний переход загружает регистры CS и IP новыми значениями, ближний – только IP
Дальний переход помещает в стек значения CS и IP, ближний – только IP
Дальний переход – это переход с использованием ячейки памяти в качестве операнда, ближний – с использованием непосредственного операнда
Вы создали EXE-программу, а затем переименовали ее в COM. Почему при данных изменениях программа продолжает работать?
Программа сообщает DOS свой тип при старте
Для определения типа программы используется атрибут x (eXecutable)
DOS запоминает тип файла, и при переименовании не изменяет его
DOS определяет программы типа EXE по двум символам MZ в начале файла, а не по расширению
Особых различий между COM и EXE программами, которые могут привести к неработоспособности, нет
В каком случае команда or дает единичный бит результата?
Если только один из соответствующих битов операндов установлен
В любом случае
Если соответствующие биты обоих операндов установлены
Если ни один из соответствующих битов операндов не установлен
Если хотя бы один из соответствующих битов операндов установлен
Команда jnz <метка> выполняет переход на указанную метку, если…
Установлен флаг переноса
Флаги переноса и нуля равны
Сброшен флаг нуля
Сброшен флаг переноса
Установлен флаг нуля
Какие два утверждения о команде loop являются верными?
После выполнения команды loop регистр CX равен 0
Команда loop выполняет переход в случае, если содержимое регистра CX больше 1
Команда loop должна выполняться в начале цикла
Команда loop является командой дальнего перехода
Команда loop увеличивает содержимое регистра CX на 1
Для проверки результата выполнения операции Вы используете команду test al, 11011100b. Какие действия осуществляет команда test в данном случае?
Выполняет операцию вычитания маски 11011100b из регистра AL, устанавливает флаг Z, если результат равен 0, результат не сохраняет
Выполняет операцию логического И (AND) над регистром AL и маской 11011100b, устанавливает флаг Z, если результат равен 0, результат не сохраняет
Выполняет операцию логического И (AND) над регистром AL и маской 11011100b, сбрасывает флаг Z, если результат равен 0, результат не сохраняет
Выполняет операцию логического И (AND) над регистром AL и маской 11011100b, сбрасывает флаг Z, если результат равен 0, результат помещает в регистр AL
Выполняет операцию логического И (AND) над регистром AL и маской 11011100b, устанавливает флаг Z, если результат равен 0, результат помещает в регистр AL
Укажите основное отличие VESA BIOS версии 2.0 от VESA BIOS версии 1.x.
Поддержка новых видеорежимов
Поддержка линейного буфера кадра для защищенного режима
Поддержка современных видеоадаптеров
Поддержка синхронизации с вертикальной разверткой
Поддержка функций защищенного режима
Какое количество прерываний позволяет использовать процессор 80x86?
64
128
16
256
32
Регистр процессора AX, используемый в большинстве математических операций для хранения, как аргумента, так и результата, часто называется…
Индуктором
Хранилищем
Аккумулятором
Ячейкой
Временным регистром
Почему в сегменте состояния задачи TSS хранятся значения селекторов стека для уровней привилегий PL=0, 1 и 2, но не для PL=3?
Селектор для PL=3 в случае PL задачи = 3 хранится в (E)SP, а в остальных случаях не нужен
Селектор для PL=3 сохраняется в отдельной области памяти
Селектор для PL=3 устанавливается процессором автоматически
Вызовы задач внутри PL=3 используют общий стек
Селектор для PL=3 на момент вызова устанавливается операционной системой
В каком случае будет установлен флаг знака после арифметической операции?
Если установлен старший бит результата
Если сброшен старший бит результата
Если установлен младший бит результата
Если сброшены старшие биты обоих операндов
Если установлены старшие биты обоих операндов
Какая команда обменивает содержимое двух регистров?
xchg
mov
trade
swap
xmov
Для чего применяются команды MOVSB/SCASB/LODSB/STOSB, а также команда REP?
Для работы с отдельными элементами данных
Для повторения в памяти определенных наборов данных с определенным интервалом
Для обработки двумерных массивов данных
Для однотипной обработки элементов строки данных
Для выполнения операций над отдельными битами в байтах
Почему в защищенном режиме работы процессора 80386 и выше НЕ используются понятия базовых и индексных регистров?
В защищенном режиме работы для адресации массивов данных могут использоваться любые регистры общего назначения
Понятия базовых и индексных регистров для процессоров 80x86 не существует
В защищенном режиме невозможна адресация массивов данных с одновременным использованием регистров и смещения
В защищенном режиме для адресации данных не используются регистры общего назначения
В защищенном режиме все базовые и индексные регистры называются адресными
Какие две из перечисленных ниже характеристик относятся ТОЛЬКО к 32-битному защищенному режиму процессора 80386?
Поддержка мультизадачности процессором
Доступ ко всей имеющейся памяти
Сегментация
Обработка прерываний
Работа с 32-битными регистрами
Для чего предназначен параметр в команде ret?
Указывает задержку перед возвратом в миллисекундах
Указывает, сколько дополнительных байт необходимо снять со стека перед возвратом
Указывает, на сколько байт от адреса возврата в стеке отстоит искомая команда, на которую надо выполнить переход
Указывает, на сколько байт от указателя стека отстоит адрес возврата
Указывает, сколько раз необходимо выполнить возврат
Почему принцип работы стека называют принципом LIFO?
Элементы стека организуются определенным образом (Let In For Organizing)
Аббревиатура LIFO является инициалами двух изобретателей принципа стека
Элементы стека снимаются в специальном формате (Linear Input Formatted Output)
Элементы стека снимаются в порядке занесения (Lead In First Out)
Элементы стека снимаются в порядке, обратному порядку их занесения (Last In First Out)
Какой командой можно сохранить в памяти регистры общего назначения?
POPA/POPAD
SMSTOR/SMSTORD
PUSHA/PUSHAD
STOREALL
SAVEREGS
Чем отличаются команды sub и sbb?
Команда sbb выполняет вычитание только в случае, если установлен флаг переноса
Команда sbb выполняет вычитание только в случае, если регистр BX не равен нулю
Команда sub вычитает дополнительную единицу, если НЕ установлен флаг переноса
Команда sbb вычитает первый операнд из второго, а sub – второй из первого
Команда sbb вычитает дополнительную единицу, если установлен флаг переноса
К чему приводит обращение к так называемому нулевому селектору (селектору с индексом дескриптора 0)?
К ошибке отсутствия сегмента
К ошибке отсутствия страницы
К останову процессора
К общему исключению защиты
К обращению к адресам линейной памяти, начиная с 0
Что называется областью памяти High Memory Area (HMA)?
Блок памяти размером 65520 байт по адресу 0FFFFh:0010h
Вся память выше первого мегабайта
Блоки памяти в адресах 0B000h:0000h-0E000h:0FFFFh
Память XMS и LIM EMS
Любая память, недоступная без специального менеджера верхней памяти
Какая информация сохраняется в стеке при вызове обработчика прерываний?
Все регистры процессора
Номер прерывания
Все сегментные регистры
Адрес возврата (сегмент и смещение)
Регистр флаго