Сертификат RetraTech "Программирование на Assembler" 2021
  • Сертификат RetraTech "Программирование на Assembler" 2021
Сертификат RetraTech "Программирование на Assembler" 2021
  • Сертификат RetraTech "Программирование на Assembler" 2021

Программирование на Assembler

850,00 руб.
В течение часа!
Экзамен Программирование на Assembler для программистов и системных администраторов.
 
Сертифицированные специалисты RetraTech по программе «Программирование на Assembler» обладают отличными навыками программирования на этом языке, который наиболее приближен к машинному языку. В отличие от языков высокого уровня, Assembler позволяет разрабатывать эффективные приложения для обработки низкоуровневых системных процессов. Assembler позволяет создавать оригинальные решения – драйверы для вновь создаваемых аппаратных устройств, а скорости работы и размеру конечных исполняемых программ могут позавидовать многие языки высокого уровня. Не случайно в каждом из них реализована поддержка ассемблерных вставок. Инженер-программист, прошедший данную сертификацию, владеет различными приёмами написания и отладки программ с использованием мощного инструментального средства – языка низкого уровня Assembler.
Количество
Есть в наличии!

Вопросы: экзамен состоит из 40 вопросов.
Время: на его прохождение отводится 100 минут.
Проходной балл: 70% и выше.

Бумажная версия сданного сертификата заказывается на сайте RetraTech.
10000 шт.
Внимание !
Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier!

Необходимо перемножить в программе два одинарных слова, находящихся в регистрах 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

 


Вы запускаете дочерний процесс функцией DOS 4Bh с параметром AL = 0 (EXEC). Какие данные Вы должны обязательно подготовить перед выполнением этой функции?


Командную строку для вызываемой программы

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

Для всех сегментов 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


 

Внимание !
Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier!

Что называется атрибутами файла в 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

 


Вы обновляете разделяемый массив в памяти. Использование какой команды предотвращает возможность чтения данных этого массива другим процессором и внешними устройствами во время обновления?

noscpu

lock

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

Любая память, недоступная без специального менеджера верхней памяти


 

Какая информация сохраняется в стеке при вызове обработчика прерываний?

Все регистры процессора

Номер прерывания

Все сегментные регистры

Адрес возврата (сегмент и смещение)

Регистр флаго


Вы можете обратится к нам напрямую, через:

skype По Skype: molodoyberkut
telegram По Telegram: @MolodoyBerkut
icq По ICQ: 657089516
По Viber: molodoyberkut

Или через форму обратной связи на нашем сайте
4.png