
Практическая часть
Тема 1.5. Команды обработки строк
REP — повторять операцию, пока CX не равно …
0
1
16
64
(а)
REPZ или REPE — повторять операцию, пока флаг ZF показывает
«= или 0»
«= или 1»
«не = или не 0»
«не = или не 1»
В зависимости от состояния флага … команда MOVS производит увеличение или уменьшение на 1 (для байта) или на 2 (для слова) содержимого регистров DI и SI
DF
ZF
CX
DS
Команды, эквивалентные команде LODSB:
MOV AL,[SI]
INC SI
JCXZ LABEL2
LABEL1: MOV AL,[SI]
MOV [DI],AL
(a,б)
Практическая польза команды STOS с префиксом … — инициализация области данных конкретным значением (REP)
Для получения адреса символа & необходимо уменьшить содержимое DI на 1 и записать по полученному адресу символ …(пробела)
Команда SCAS сравнивает байты в … последовательности (обратной).
Кодируется повторяющееся однобайтовое сравнение:
REPE CMPSB
JCXZ LABEL2
LABEL1: MOV AL,[SI]
MOV [DI],AL
(а)
Альтернативное кодирование можно записать:
STRING STRING DB 'The time&is now' ...
CLD MOV AL,'&' ;Искомый символ
MOV CX,STRLEN ;Длина поля
REP MOVS ES:BYTE PTR[DI],DS:[SI]
(г)
Для дублирования образца, длина которого превышает размер слова, можно использовать команду … с небольшой модификацией:
MOVS
LABEL
SCAS
REPE
Тема 1.6. Обработка таблиц
Для определения таблицы из 10 слов программа может использовать оператор применения:
MOV AX,TYPE (TABLEX ;AX=0002)
MOV BX,LENGTH (TABLEX ;BX=000A (10))
MOV CX,SIZE (TABLEX ;СX=0002)
MOV АX,LENGTH (TABLEX ;АX=000A (10))
MOV CX,SIZE (TABLEX ;CX=0014 (20))
(а,б,д)
Команды LEA BX,XLTBL MOV AL,ASCNO XLAT выполняют
подготовку
трансляцию байта
окончание табличного поиска или сортировки
сохранить число выполненных циклов
организацию поиска
(а,б)
Если ASCNO содержит 00, то адрес байта в таблице будет XLTBL+00 и команда XLAT заменит 00 на … из таблицы.
шест.40
шест.32
шест.42
шест.30
(а)
Подоходный налог дает характерный пример таблицы
с ранжированными значениями
с уникальными элементами
с элементами переменной длины
с транслирующей командой XLAT
(а)
Для локализации месяца 03(март), программа должна выполнить:
1. Преобразовать введенный номер месяца из ASCII 33 в двоичное 03.
2. Вычесть единицу из номера месяца: 03 — 1 = 02
3. Умножить результат на длину элемента (9): 02 х 9 = 18
4. Прибавить произведение (18) к адресу MONTBL
Тема 1.7. Свойства операторов работы с экраном
Каждая клавиша имеет собственный скэн-код
от 1 (Esc) до 83 (Del) или от шест.01 до шест.53.
от 10 (Esc) до 83 (Del) или от шест.01 до шест.53.
от 1 (Esc) до 80 (Del) или от шест.01 до шест.50.
от 1 (Esc) до 80(Del) или от шест.01 до шест.63.
(а)
Запрос на ввод одного символа с клавиатуры включает загрузку 00 в регистр AH и обращение к BIOS через …:
MOV AH,00
INT 16H
INT 10H
AH,02
(б)
Обычный видеомонитор, имеет … строк и … столбцов.
25 и 80
24 и 79
26 и 79
24 и 81
(а)
Команда … включает в себя установку курсора в любую позицию и очистку экрана.
INT 10H
AH,02
BH,00
DH,05
(а)
Для установки строки и столбца можно использовать команду … c непосредственным шест. значением
BH
MOV
DX
CH
(б)
Начальное значение строки и столбца заносится в регистр …, значение 07 — в регистр BH и 0600H в AX.
DX
BH
АН
СН
(а)
Соотнесите использование управляющих символов возврата каретки, перевода строки и табуляции:
CR 13 0DH
LF 10 0AH
TAB 09 09H
Буквы RGB представляют битовые позиции, управляющие … лучом в цветном мониторе.
красным
зеленым
синим
черным
желтым
(а,б,в)
Используя символы (DA Верхний левый угол, BF Верхний правый угол, C0 Нижний левый угол, D9 Нижний правый угол, C4 Горизонтальная линия, B3 Вертикальная линия) можно нарисовать …:
(Прямоугольник)
Соотнесите штриховки символ с точками внутри:
B0 Одна четверть точек (светлая штриховка)
B1 Половина точек (средняя штриховка)
B2 Три четверти точек (темная штриховка)
Соотнесите функциональные клавиши и снек-код
Home 47
Стрелка вверх 48
PgUp 49
Стрелка влево 4B
Стрелка вправо 4D
End 4F
Стрелка вниз 50
PgDu 51
Ins 52
Del 53
Для установки цвета можно использовать в команде INT 10H функции
AH=06
AH=07
AH=08
AH=10
AH=09
(а,б,д)
Стандартный подход к прокрутке:
1. Определить в элементе ROW значение 0 для установки строки положения курсора.
2. Выдать текст и продвинуть курсор на следующую строку.
3. Проверить, находится ли курсор на последней строке (CMP ROW,22).
4. В случае, если да, то увеличить элемент ROW и выйти. Если нет, то прокрутить экран на одну строку и, используя ROW переустановить курсор.
Соотнесите функции DOS
AH=01
Ввод с клавиатуры с эхо отображением.
AH=02
Вывод символа.
AH=07
Прямой ввод с клавиатуры без эхо отображения.
AH=08
Ввод с клавиатуры без эхо отображения.
AH=0B
Проверка состояния клавиатуры.