Хелпикс

Главная

Контакты

Случайная статья





Практическая работа №8. 1. Повторить теоретическую часть. 2. Выполнить задание в соответствии с указаниями. Просмотреть презентацию «Связь ассемблера с языками высокого уровня»



Практическая работа №8

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

Цель работы: научиться создавать комбинированные программы, совмещая язык высокого уровня Паскаль и язык низкого уровня Ассемблер.

 

 

Ход работы:

1. Повторить теоретическую часть

2. Выполнить задание в соответствии с указаниями

3. Оформить отчет в соответствии с ходом работы. (В отчете должен быть код программы  с комментариями, таблица со значениями, затем скриншот  с результатом и ответы на контрольные вопросы)

Теоретическая часть:

Просмотреть презентацию «Связь ассемблера с языками высокого уровня»

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

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

1. Вам потребуется программа ТУРБО ПАСКАЛЬ. Вы можете скачать ее по ссылке https: //logi. cc/pishem-pervuyu-programmu-na-turbo-pascal/#. XsFz5BozaCo или используйте любую другую версию этой программы.

2. В среде ТУРБО ПАСКАЛЬ набираем код основной программы, сохраняем под именем primer. pas

 

Файл 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.  

 

 

3. В блокноте набрать код функции на языке ассемблер. Сохранить под именем asmmod. asm.

  Файл 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

 

 

4. Получите с помощью компилятора TASM файл asmmod. obj ( если у вас не работает TASM на домашнем компьютере, воспользуйтесь моей заготовкой)

5. Запускаем файл primer. pas. (файлы primer. pas и   asmmod. obj должны лежать в одной папке)Тестируем программу. Результат заносим в таблицу.

Исходные данные Результат в десятичной системе
n=2     m=3  
n=14  m=3  
n=5  m=5  

 

.

 

 

Контрольные вопросы:

1. Дайте определение процедуры (подпрограммы).

2. Какие директивы используются для описания процедур?

3. В каком месте программы размещается процедура?

4. Какая команда используется для вызова процедуры? Для возврата из процедуры?

5. Какие существуют способы передачи параметров в процедуру?

 

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.