Assembler. Лабораторная работа №5. (4 часа).

«Программирование с использованием взаимодействия Паскаль - Ассемблер».

Цели:

 

Ход работы:

1. Изучить (повторить) теоретический материал: Тема 12. Связь ассемблера с языками высокого уровня.

2. Получить (уточнить) у преподавателя номер своего варианта.

3. Выбрать из списка номер своего варианта:

1 2 3 4 5 6 7 8 9 10 11 12

4. Внимательно прочитать условие задачи, если возникли вопросы по условию, задайте их преподавателю.

5. Внимательно изучить пример.

6. Разработать программу для своего варианта.

7. Протестировать программу.

8. Оформить отчет по лабораторной работе - в начале asm-файла записать как комментарий:

9. Сдать преподавателю выполненную работу: скопировать папку с файлами проектов (asm, obj, exe) в папку "Рабочий стол\ЛР-сдача\№группы_Фамилия_№ЛР", например, 29в_Петров_5. Оценки по проверенным работам можно посмотреть в электронном журнале.


Пример программы:

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

       

Основную программу разработать на языке Паскаль. Для вычисления суммы создать функцию Summa(n,k:integer):integer на Ассемблере. Функцию Summa разместить во внешнем obj-файле.

 

Файл primer.pas:

 

Program PasAsm;
Function Summa(n,k:integer):integer;external;
Var n,m,y:integer;
{$L asmmod.obj} {подключение файла}
Begin
    Write(‘Введите n,m: ‘);
    Readln(n,m);
    y:=Summa(n,2)-Summa(m,3);
    Writeln(‘y=‘,y);
    Readln;
End.

Файл asmmod.asm:

.model small
.code
begin:
     Summa proc
     Public Summa
            push bp
            mov bp,sp
            mov cx,[bp+6] ;cx:=n
            mov ax,0 ;ax:=0
 for:      add ax,cx ;ax:=ax+cx
            loop for ;cx:=cx-1
            imul [bp+4] ;ax:=ax*k
            pop bp
            ret 4
     Summa endp
end begin


Индивидуальные задания

Вариант 1.

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

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

Вариант 2.

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

 

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

Вариант 3.

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

 

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

Вариант 4.

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

 

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

Вариант 5.

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

 

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

Вариант 6.

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

 

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

Вариант 7.

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

 

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

Вариант 8.

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

 

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

Вариант 9.

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

 

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

Вариант 10.

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

 

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

Вариант 11.

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

 

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

Вариант 12.

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

 

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