Сборник задач и упражнений для лабораторного практикума по курсу "ЭВУ и системы" (изучение архитектуры и системы команд INTEL-совместимых микропроцессоров). Коршунов А.Д. - 6 стр.

UptoLike

Составители: 

6
4. Команда LOOP. Обработка данных в цикле (без использования
ветвлений)
1. Дана последовательность символов (строка), размещённая по адресу DS:0000h.
Переписать эту строку (сделать копию) в другое место оперативной памяти, по ад-
ресу, указанному преподавателем. Варианты: (а) использовать REP MOVSB, (б)
использовать LOOP.
2. Дана последовательность из 10 чисел (байтов), размещённых в сегменте данных,
начиная с адреса DS:0010h. Вычислить их сумму и записать результат по адресу
DS:0020h.
3. Дана последовательность из 5 чисел (байтов), размещённых в сегменте данных, на-
чиная с адреса DS:0000h. Вычислить сумму квадратов этих чисел и записать ре-
зультат по адресу DS:0010h.
4. Дана последовательность заглавных и строчных латинских букв (строка текста),
размещённая по адресу DS:0020h. Преобразовать текст, превратив строчные буквы
в заглавные, и записать во вторую строку, которую расположить по адресу, указан-
ному преподавателем. Пример входных данных: “High school”. Результат:
“HIGH SCHOOL”. Примечание: необходимо сбросить в ноль 5-й бит в ASCII-коде
каждой буквы (команда AND). Исходная строка должна остаться в памяти без из-
менения.
5. Дана последовательность символов (строка текста), заполненная так, как указано в
предыдущей задаче. Зашифровать/расшифровать данный текст, используя: а) ко-
манду XOR, б) команды ROL и ROR.
5. Обработка данных в цикле с использованием ветвлений
В задачах этого раздела под термином «массив» понимается последовательность данных,
размещённая каким-либо способом в сегменте DS (система AsmEd легко позволяет сделать это). Ре-
зультаты подсчётов элементов следует получить в одном из регистров процессора по указанию препо-
давателя. Второй массив (в задачах 3,6,7) можно разместить как в сегменте DS, так и в сегменте ES.
1. Дан массив байтов. Подсчитать количество элементов, равных трем.
2. Дан массив байтов. Подсчитать количество элементов, кратных трем (команда
DIV).
3. Дано два массива байтов, один заполнен числами по указанию преподавателя. За-
полнить второй массив следующим образом: все элементы первого массива, стоя-
щие на нечетных местах, возвести в квадрат, стоящие на
четных местахв куб.
4. Дан массив: а) байтов, б) слов. Подсчитать количество четных элементов.
5. Дан массив: а) байтов, б) слов. Подсчитать количество элементов, делящихся на 10
и не делящихся на 3.
6. Дан массив байтов. Сформировать другой массив, в который нечетные элементы из
первого массива переписать без изменений, а четные
увеличить на 1.
7. Дан массив, заполненный двузначными числами. Сформировать другой массив, в
котором каждый элемент представляет собой сумму цифр соответствующего числа
первого массива.
                                                                                                 6

4. Команда LOOP. Обработка данных в цикле (без использования
ветвлений)
1. Дана последовательность символов (строка), размещённая по адресу DS:0000h.
   Переписать эту строку (сделать копию) в другое место оперативной памяти, по ад-
   ресу, указанному преподавателем. Варианты: (а) использовать REP MOVSB, (б)
   использовать LOOP.
2. Дана последовательность из 10 чисел (байтов), размещённых в сегменте данных,
   начиная с адреса DS:0010h. Вычислить их сумму и записать результат по адресу
   DS:0020h.
3. Дана последовательность из 5 чисел (байтов), размещённых в сегменте данных, на-
   чиная с адреса DS:0000h. Вычислить сумму квадратов этих чисел и записать ре-
   зультат по адресу DS:0010h.
4. Дана последовательность заглавных и строчных латинских букв (строка текста),
   размещённая по адресу DS:0020h. Преобразовать текст, превратив строчные буквы
   в заглавные, и записать во вторую строку, которую расположить по адресу, указан-
   ному преподавателем. Пример входных данных: “High school”. Результат:
   “HIGH SCHOOL”. Примечание: необходимо сбросить в ноль 5-й бит в ASCII-коде
   каждой буквы (команда AND). Исходная строка должна остаться в памяти без из-
   менения.
5. Дана последовательность символов (строка текста), заполненная так, как указано в
   предыдущей задаче. Зашифровать/расшифровать данный текст, используя: а) ко-
   манду XOR, б) команды ROL и ROR.


5. Обработка данных в цикле с использованием ветвлений

       В задачах этого раздела под термином «массив» понимается последовательность данных,
размещённая каким-либо способом в сегменте DS (система AsmEd легко позволяет сделать это). Ре-
зультаты подсчётов элементов следует получить в одном из регистров процессора по указанию препо-
давателя. Второй массив (в задачах 3,6,7) можно разместить как в сегменте DS, так и в сегменте ES.

1. Дан массив байтов. Подсчитать количество элементов, равных трем.
2. Дан массив байтов. Подсчитать количество элементов, кратных трем (команда
   DIV).
3. Дано два массива байтов, один заполнен числами по указанию преподавателя. За-
   полнить второй массив следующим образом: все элементы первого массива, стоя-
   щие на нечетных местах, возвести в квадрат, стоящие на четных местах – в куб.
4. Дан массив: а) байтов, б) слов. Подсчитать количество четных элементов.
5. Дан массив: а) байтов, б) слов. Подсчитать количество элементов, делящихся на 10
   и не делящихся на 3.
6. Дан массив байтов. Сформировать другой массив, в который нечетные элементы из
   первого массива переписать без изменений, а четные – увеличить на 1.
7. Дан массив, заполненный двузначными числами. Сформировать другой массив, в
   котором каждый элемент представляет собой сумму цифр соответствующего числа
   первого массива.