Задания к обязательной контрольной работе №2

 

Выполняется по материалам раздела «Основы программирования на языке Assembler».

Работа выполняется в электронном формате. Все файлы работы (*.doc, *.asm, *.obj, *.exe) скопировать по сети в папку "Рабочий стол\ЛР-сдача\№группы_Фамилия_ОКР2" не позднее, чем за 5 минут до окончания занятия.

 

Пример оформления текстового файла контрольной работы.

 

Уточните у преподавателя номер своего варианта и выберите его из списка:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

 

Вариант 1.

 

1. Дать письменный ответ на следующий вопрос:

Языки программирования. Деление на языки высокого и низкого уровня.

4 балла.

 

2. Разработать программу на языке Assembler для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления произведения первых N натуральных чисел.

 

Уровень II (4 балла).

Составить программу вычисления функции y(a,b):

Протестировать программу при следующих исходных данных:

а) а= -2, b= -2; б) a=2, b=-3; в) а=2,  b=3.

 

Уровень III (6 баллов).

Составить программу вычисления:

Основную программу разработать на языке Паскаль, в ней организовать ввод исходных данных и вывод результата. Для вычисления суммы разработать подпрограмму на Ассемблере и использовать её в основной программе передав требуемые параметры.

Вариант 2.

1. Дать письменный ответ на следующий вопрос:

Назначение и возможности языков низкого уровня. Общие сведения о языке Assembler.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления суммы первых N натуральных нечетных чисел.

 

Уровень II (4 балла).

Составить программу вычисления функции y(x):

Протестировать программу при следующих исходных данных:

а) x=4; б) x=3.

 

Уровень III (6 баллов).

Составить программу вычисления:

Основную программу разработать на языке Паскаль, в ней организовать ввод исходных данных и вывод результата. Для вычисления факториала разработать подпрограмму на Ассемблере и использовать её в основной программе передав требуемые параметры.

Вариант 3.

1. Дать письменный ответ на следующий вопрос:

Программная модель микропроцессора. Регистры МП, их классификация.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления произведения первых N натуральных четных чисел.

 

Уровень II (4 балла).

Составить программу вычисления функции y(a,b):

Протестировать программу при следующих исходных данных:

а) а= -2, b= 3;  б) a=5, b= -2; в) а=2, b=3.

 

 

Уровень III (6 баллов).

Составить программу вычисления двойной суммы:

Исходные данные: n = 3; m = 5. Организовать ввод исходных данных с клавиатуры и вывод результата на экран. Для ввода-вывода чисел воспользоваться процедурами read и write из файла d:tasm/bin/primery/rw.asm.

Вариант 4.

1. Дать письменный ответ на следующий вопрос:

Организация памяти ПЭВМ. Адресация памяти. Понятие сегмента, смещения. Абсолютный и относительный адрес.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления суммы первых N натуральных четных чисел.

 

Уровень II (4 балла).

Составить программу вычисления функции y(a,b):

Протестировать программу при следующих исходных данных:

а) а= -2, b= -3; б) a= 3, b= -2; в) а= -2, b=3.

 

Уровень III (6 баллов).

Составить программу вычисления двойной суммы:

Исходные данные: n = 3; m = 5. Организовать ввод исходных данных с клавиатуры и вывод результата на экран. Для ввода-вывода чисел воспользоваться процедурами read и write из файла d:tasm/bin/primery/rw.asm.

Вариант 5.

1. Дать письменный ответ на следующий вопрос:

Типы данных ассемблера, их физическая и логическая интерпретация. Основные форматы представления данных в памяти.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления функции y:

 

Протестировать программу при следующих исходных данных:

а) а= 2, b= 2; б) a=6, b=8; в) а=2,  b=1.

 

Уровень II (4 балла).

Составить программу, подбирающую натуральные X и Y (одну комбинацию, наибольшее Y при наибольшем X), удовлетворяющие равенству: 2*X + 3*Y = 120. Найденные X, Y записать в память.

 

Уровень III (6 баллов).

Составить программу, подбирающую все натуральные X и Y, удовлетворяющие равенству:

2*X + 3*Y = N. N - исходное данное, можно определить в сегменте данных, или организовать ввод с клавиатуры. Вывести на экран найденные комбинации X-Y, их количество, или сообщение, что таких комбинаций нет. Для ввода-вывода чисел воспользоваться процедурами read и write из файла d:tasm/bin/primery/rw.asm.

Вариант 6.

1. Дать письменный ответ на следующий вопрос:

Структура программы на языке Assembler. Назначение сегментов данных, стека, кода. Основные директивы ассемблера.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления функции y(a,b):

Протестировать программу при следующих исходных данных:

а) а=-2, b=1; б) a=3, b=2;  в) а=2,  b=2.

 

Уровень II (4 балла).

Составить программу вычисления суммы произведений:

Протестировать программу при: n=3; m = 5.

 

Уровень III (6 баллов).

Составить программу вычисления произведения байт памяти от адреса start_adr до адреса end_adr. Start_adr = DS : 0;   End_Adr = DS : 3. Вывести на экран содержимое данного участка памяти как строку и значение полученного произведения (для вывода числа воспользоваться процедурой write из файла d:tasm/bin/primery/rw.asm).

Вариант 7.

1. Дать письменный ответ на следующий вопрос:

Средства разработки программ на ассемблере: текстовые редакторы, транслятор (tasm.exe), компоновщик (tlink.exe), отладчик (td.exe). Их назначения и правила использования.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления x:

Протестировать программу при следующих исходных данных:

a) y = 1; w = 4; u = 3; v = 5; z = 2. b) y = 12; w = -2; u = 2; v = 3; z = -10.
 

Уровень II (4 балла).

Составьте программу вычисления суммы произведений:

Исходные данные: n = 3; m = 5.

 

Уровень III (6 баллов).

Составить программу вычисления контрольной суммы (сумму байт памяти от адреса start_adr до адреса end_adr). Start_adr = DS : 0;   End_Adr = DS : 6. Вывести на экран содержимое данного участка памяти как строку и значение полученной суммы (для вывода числа можно воспользоваться процедурой write из файла d:tasm/bin/primery/rw.asm).

Вариант 8.

1. Дать письменный ответ на следующий вопрос:

Система команд микропроцессора. Общий обзор. Формат команды ассемблера.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления выражения:

Протестировать программу при следующих исходных данных:

а) Y=1; Z=3; U=2; V=-5; W=4.

б) Y=-2; Z=3; U=2; V=5; W=4.

 

Уровень II (4 балла).

В отдельном файле (summa.asm) составить подпрограмму вычисления суммы:

Параметры  x, n передать через стек. Результат возвратить в регистре  ax. В главной программе (main.asm) вызвать составленную подпрограмму.

 

Уровень III (6 баллов).

Составить программу, определяющую в строке количество заданных символов. Организовать ввод-вывод данных.

Вариант 9.

1. Дать письменный ответ на следующий вопрос:

Команды ассемблера для пересылки данных. Способы адресации в командах ассемблера.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления выражения:

Протестировать программу при следующих исходных данных:

а) Y=2; Z=18; U=10; V=5; W=3.

б) Y=2; Z=18; U=10; V=-2; W=3.

 

Уровень II (4 балла).

Составить подпрограмму (в текущем файле) вычисления суммы:

Параметры  x, n передать через регистры. Результат возвратить в аккумуляторе. В главной программе вызвать составленную подпрограмму.

 

Уровень III (6 баллов).

Составить программу, заменяющую в строке один заданный символ на другой. Строку и символы вводить с клавиатуры, обработанную строку вывести на экран.

Вариант 10.

1. Дать письменный ответ на следующий вопрос:

Арифметические команды ассемблера.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления выражения:

 Протестировать программу при следующих исходных данных:

 а) Y=1;   Z=2;    U=3; W=4;   V=5.

 б) Y=1; Z=-10; U=2; W=-2; V=3.

 

Уровень II (4 балла).

Составить подпрограмму вычисления суммы:

Способ размещения подпрограммы, передачу в неё параметров  x, n и возвращение результата определить самостоятельно. В главной программе вызвать составленную подпрограмму.

 

Уровень III (6 баллов).

Задан массив целых чисел (ввести с клавиатуры и записать в сегменте данных). Составить программу получения нового массива (записать его в сегмент данных в отведенное для этого место и вывести на экран). Каждый элемент нового массива вычисляется как остаток от деления соответствующего элемента заданного массива на число 3. Для ввода-вывода чисел воспользоваться процедурами read и write из файла d:tasm/bin/primery/rw.asm.

Вариант 11.

1. Дать письменный ответ на следующий вопрос:

Команды безусловного и условных переходов. Организация ветвлений в программах на ассемблере.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу для вычисления выражения:

Протестировать программу при следующих значениях исходных данных:

a) y = 1; w = 4; u = 3; v = 5; z = 2

b) y = 12; w = 2; u = -2; v = 3; z = -10

 

Уровень II (4 балла).

Составить программу для вычисления многовариантной функции y(x):

Протестировать программу при следующих значениях исходных данных:

a) x= -2; b) x= 1; c) x= -6

 

Уровень III (6 баллов).

Составить программу для вычисления выражения:

Основную программу разработать на языке Паскаль, в ней организовать ввод исходных данных и вывод результата. Для вычисления факториала разработать подпрограмму на Ассемблере и использовать её в основной программе. Протестировать программу при следующих значениях исходных данных: n = 7; m =5.

Вариант 12.

1. Дать письменный ответ на следующий вопрос:

Команды для организации циклов в программах на ассемблере.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу для вычисления выражения:

Протестировать программу при следующих значениях исходных данных:

a) y = 12; w = 4; u = 8; v = 2; z = 10

b) y = 12; w = 4; u = -8; v = 2; z = -20

 

Уровень II (4 балла).

Составить программу для вычисления многовариантной функции y(a,b):

Протестировать программу при следующих значениях исходных данных:

a) а= 10; b= 3     b) a= -4; b= -3       c) а= 2;  b= -4

 

Уровень III (6 баллов).

Составить программу для вычисления выражения:

Основную программу разработать на языке Паскаль, в ней организовать ввод исходных данных и вывод результата. Для вычисления произведения разработать подпрограмму на Ассемблере и использовать её в основной программе. Протестировать программу при следующих значениях исходных данных: n = 5; m = 5

Вариант 13.

1. Дать письменный ответ на следующий вопрос:

Организация подпрограмм в ассемблере.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу для вычисления выражения:

Протестировать программу при следующих значениях исходных данных:

a) y = 10; w = 8; u = 4; v = 3; z = 2

b) y = 10; w = 4; u = 4; v = -3; z = 2

 

Уровень II (4 балла).

Составить программу вычисления произведения суммы:

Протестировать программу при: n=3; m = 5.

 

Уровень III (6 баллов).

Составить программу для вычисления выражения:

Основную программу разработать на языке Паскаль, в ней организовать ввод исходных данных и вывод результата. Для вычисления суммы разработать подпрограмму на Ассемблере и использовать её в основной программе. Протестировать программу при следующих значениях исходных данных: a = 2; b = 1; c = 3; d = 2; n = 120; m = 10

Вариант 14.

1. Дать письменный ответ на следующий вопрос:

Использование системных ресурсов. Прерывания BIOS и DOS. Команда INT. Организация ввода-вывода данных, используя функции операционной системы.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу для вычисления многовариантной функции y(x):

Протестировать программу при следующих значениях исходных данных:

a) x= 2; b) x= 12

 

Уровень II (4 балла).

Составить программу вычисления произведения суммы:

Протестировать программу при: n=3; m = 2.

 

Уровень III (6 баллов).

Составить программу для вычисления выражения:

Основную программу разработать на языке Паскаль, в ней организовать ввод исходных данных и вывод результата. Для вычисления факториала разработать подпрограмму на Ассемблере и использовать её в основной программе. Протестировать программу при следующих значениях исходных данных: n = 5; m = 4

Вариант 15.

1. Дать письменный ответ на следующий вопрос:

Порты ввода/вывода, их назначение и примеры использования. Команды IN и OUT.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу для вычисления многовариантной функции y(x):

Протестировать программу при следующих значениях исходных данных:

a) x= -2; b) x= 10; c) x= 0

 

Уровень II (4 балла).

Составить программу вычисления двойного произведения:

Протестировать программу при: n=3; m = 2.

 

Уровень III (6 баллов).

Составить программу для вычисления выражения:

Основную программу разработать на языке Паскаль, в ней организовать ввод исходных данных и вывод результата. Для вычисления произведения разработать подпрограмму на Ассемблере и использовать её в основной программе. Протестировать программу при следующих значениях исходных данных: n = 4; m = 3; a = 2; b = 1

Вариант 16.

1. Дать письменный ответ на следующий вопрос:

Цепочечные команды для обработки цепочек данных (строк).

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу для вычисления многовариантной функции y(a,b):

Протестировать программу при следующих значениях исходных данных:

a) а= 15; b= 16     b) a= 12; b= 10       c) а= 5;  b= 5

 

Уровень II (4 балла).

Составить программу вычисления двойного произведения:

Протестировать программу при: n=3; m = 2.

 

Уровень III (6 баллов).

Составить программу для вычисления выражения:

Основную программу разработать на языке Паскаль, в ней организовать ввод исходных данных и вывод результата. Для вычисления суммы разработать подпрограмму на Ассемблере и использовать её в основной программе. Протестировать программу при следующих значениях исходных данных: k = 4; l = 12; n = 3; m = 7

Вариант 17.

1. Дать письменный ответ на следующий вопрос:

Взаимодействие ассемблера с языками высокого уровня (Turbo Pascal).

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления произведения 5-ти слов в памяти от адреса start_adr в сегменте данных. Протестировать программу при следующем определении в сегменте данных: start_adr dw 1h, 2h, Ah, 3h, 2h

 

Уровень II (4 балла).

Составить подпрограмму для вычисления суммы:

Подпрограмму разместить во внешнем файле. Параметры (x, n) в подпрограмму передать через регистры. Результат возвратить в регистре ax. В основной программе организовать вызов подпрограммы для следующих наборов исходных данных: a) x = 2; n = 2; b) x = -2; n = 3; c) x = 7; n = 9

 

Уровень III (6 баллов).

Составить программу для вычисления выражения:

Основную программу разработать на языке Паскаль, в ней организовать ввод исходных данных и вывод результата. Для вычисления суммы разработать подпрограмму на Ассемблере и использовать ее в основной программе. Протестировать программу при следующих значениях исходных данных: n = 5; m = 2

Вариант 18.

1. Дать письменный ответ на следующий вопрос:

Программная модель микропроцессора. Регистры МП, их классификация.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления суммы 5-ти слов в памяти от адреса start_adr в сегменте данных. Протестировать программу при следующем определении в сегменте данных: start_adr dw F1h, A10h, Ah, ADh, 123h

 

Уровень II (4 балла).

Составить подпрограмму для вычисления суммы:

Подпрограмму разместить в текущем файле. Параметры (x, n) в подпрограмму передать через стек. Результат возвратить в регистре ax. В основной программе организовать вызов подпрограммы для следующих наборов исходных данных:

 a) x = 2; n = 2; b) x = -2; n = 3; c) x = 9; n = 8

 

Уровень III (6 баллов).

Составить программу для вычисления выражения:

Основную программу разработать на языке Паскаль, в ней организовать ввод исходных данных и вывод результата. Для вычисления суммы разработать подпрограмму на Ассемблере и использовать её в основной программе. Протестировать программу при следующих значениях исходных данных: n = 14; m = 3

Вариант 19.

1. Дать письменный ответ на следующий вопрос:

Типы данных ассемблера, их физическая и логическая интерпретация. Основные форматы представления данных в памяти.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления произведения 6-ти байт памяти от адреса start_adr в сегменте данных. Протестировать программу при следующем определении в сегменте данных: start_adr db '14.03'

 

Уровень II (4 балла).

Составить подпрограмму для вычисления суммы:

Подпрограмму разместить во внешнем файле. Параметры (x, n) в подпрограмму передать через стек. Результат возвратить в регистре ax. В основной программе организовать вызов подпрограммы для следующих наборов исходных данных:

 a) x = 2; n = 2; b) x = -2; n = 3; c) x = 10; n = 8 

 

Уровень III (6 баллов).

Составить программу для вычисления выражения: y = 3n! - 2m!

Основную программу разработать на языке Паскаль, в ней организовать ввод исходных данных и вывод результата. Для вычисления факториала разработать подпрограмму на Ассемблере и использовать её в основной программе. Протестировать программу при следующих значениях исходных данных: n = 4; m = 3

Вариант 20.

1. Дать письменный ответ на следующий вопрос:

Команды ассемблера для пересылки данных. Способы адресации в командах ассемблера.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления суммы 7-ти байт памяти от адреса start_adr в сегменте данных. Протестировать программу при следующем определении в сегменте данных: start_adr db 'Program'

 

Уровень II (4 балла).

Составить подпрограмму для вычисления суммы:

Подпрограмму разместить в текущем файле. Параметры (x, n) в подпрограмму передать через регистры. Результат возвратить в регистре ax. В основной программе организовать вызов подпрограммы для следующих наборов исходных данных: a) x = 2; n = 2; b) x = -2; n = 3; c) x = 5; n = 8 

 

Уровень III (6 баллов).

Составить программу, удаляющую в строке заданный символ и подсчитывающую количество удалений. Организовать ввод исходных данных (исходную строку и удаляемый символ) с клавиатуры и вывод результатов (обработанную строку и количество удалений) на экран. Для вывода численного значения использовать процедуру write из файла d:tasm/bin/primery/rw.asm.

Вариант 21.

1. Дать письменный ответ на следующий вопрос:

Арифметические команды ассемблера.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления произведения N натуральных чисел, хранящихся в памяти как массив. Протестировать программу при: N=5; A=(2, 5, 1, 3, 7).

 

Уровень II (4 балла).

Составить подпрограмму для вычисления суммы:

Подпрограмму разместить во внешнем файле. Параметры (x, n) в подпрограмму передать через регистры. Результат возвратить в регистре ax. В основной программе организовать вызов подпрограммы для следующих наборов исходных данных:

 a) x = 2; n = 2; b) x = -2; n = 3; c) x = 5; n = 12

 

Уровень III (6 баллов).

Составить программу, удаляющую в строке два, идущих подряд заданных символа и подсчитывающую количество удалений. Организовать ввод исходных данных (исходную строку и пару удаляемых символов) с клавиатуры и вывод результатов (обработанную строку и количество удалений) на экран. Для вывода численного значения использовать процедуру write из файла d:tasm/bin/primery/rw.asm.

Вариант 22.

1. Дать письменный ответ на следующий вопрос:

Команды безусловного и условных переходов. Организация ветвлений в программах на ассемблере.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления суммы N натуральных чисел, хранящихся в памяти как массив A. Протестировать программу при: N=5; A=(2, 5, 1, 3, 7).

 

Уровень II (4 балла).

Составить подпрограмму для вычисления суммы:

Подпрограмму разместить в текущем файле. Параметры (x, n) в подпрограмму передать через регистры. Результат возвратить в регистре ax. В основной программе организовать вызов подпрограммы для следующих наборов исходных данных: a) x = 2; n = 2; b) x = -2; n = 3; c) x = 15; n = 12

 

Уровень III (6 баллов).

Составить программу вычисления выражения:

Организовать ввод исходных данных с клавиатуры и вывод результата на экран. Для ввода и вывода численных значений использовать процедуры read и write из файла d:tasm/bin/primery/rw.asm.

Вариант 23.

1. Дать письменный ответ на следующий вопрос:

Команды для организации циклов в программах на ассемблере.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления произведения первых N натуральных  чисел (факториала N). Протестировать программу при N=5.

 

Уровень II (4 балла).

Составить подпрограмму для вычисления суммы:

Подпрограмму разместить в текущем файле. Параметры (x, n) в подпрограмму передать через стек. Результат возвратить в регистре ax. В основной программе организовать вызов подпрограммы для следующих наборов исходных данных: a) x = 2; n = 2; b) x = -2; n = 3; c) x = 3; n = 10

 

Уровень III (6 баллов).

Составить программу, вставляющую в строку за заданным символом другой заданный символ и подсчитывающую количество произведенных вставок. Организовать ввод исходных данных (исходную строку и два символа) с клавиатуры и вывод результатов (обработанную строку и количество вставок) на экран. Для вывода численного значения использовать процедуру write из файла d:tasm/bin/primery/rw.asm.

Вариант 24.

1. Дать письменный ответ на следующий вопрос:

Организация подпрограмм в ассемблере.

4 балла.

 

2. Разработать программу на Assemblere для решения одной из трех предложенных задач:

Уровень I (2 балла).

Составить программу вычисления суммы первых N натуральных чисел. Протестировать программу при N=5.

 

Уровень II (4 балла).

Составить подпрограмму для вычисления суммы:

Подпрограмму разместить в текущем файле. Параметры (x, n) в подпрограмму передать через регистры. Результат возвратить в регистре ax. В основной программе организовать вызов подпрограммы для следующих наборов исходных данных: a) x = 2; n = 2; b) x = -2; n = 3; c) x = -12; n = 30 

 

Уровень III (6 баллов).

Составить подпрограмму для вычисления функции y(x):

Организовать ввод исходного данного с клавиатуры и вывод результата на экран. Для ввода и вывода численных значений использовать процедуры read и write из файла d:tasm/bin/primery/rw.asm.