Учебно-методический комплекс дисциплины «Системное программное обеспечение»


Скачать 1.24 Mb.
Название Учебно-методический комплекс дисциплины «Системное программное обеспечение»
страница 2/11
Тип Учебно-методический комплекс
rykovodstvo.ru > Руководство эксплуатация > Учебно-методический комплекс
1   2   3   4   5   6   7   8   9   10   11

Соглашения о связях для языка Паскаль




Соглашение

Описание

Программные ссылки

Far (далекие)

Ссылки на данные

Far (далекие)

Стек очищается

вызываемой программой ( RET N)

Параметры передаются в

порядке объявления

Параметры передаются по

Значению

Значения возвращаются в

регистре AX или DX:AX

Все имена являются

нечувствительными к регистру


2. Передача параметров.

Теперь рассмотрим механизм передачи параметров из вызывающей программы в вызываемую.

Большинство компиляторов языков высокого уровня для реализации вызова процедур используют передачу параметров в стек. При этом способе передачи данных перед выполнением вызова все требуемые параметры заносятся в стек. После вызова вызывающая программа осуществляет доступ к данным без их пересылки.

Пример 1. Передача параметров через стек

Вызывающая процедура

... ...

push ; пересылка последнего аргумента

... ...

push ; пересылка второго аргумента

push ; пересылка первого аргумента

call ; вызов процедуры

add sp,2N ; очистка стека

... ...

Вызываемая процедура

PROC FAR ; пример вызова процедуры far

push bp ; сохранение старого BP

mov bp,sp ; указатель ссылки на стек

... ...

mov ,[bp+6] ; доступ к первому параметру

mov ,[bp+8] ; доступ ко второму параметру

... ...

mov ,[bp+4+2N] ; доступ к последнему параметру

... ...

pop bp ; удаление сохраненного BP

ret ; возврат в вызывающую программу

ENDP
Вызывающая процедура перед вызовом сохраняет в стеке адрес возврата. Поскольку дальняя процедура главная процедура сохраняет полный 4-х байтовый адрес (CS:IP). Вызываемая программа использует регистр BP для доступа к параметрам в стеке, но прежде она запоминает содержимое регистра BP, записывая его в стек.

Затем программа помещает в регистр BP содержимое из регистра SP, так как в качестве индексного регистра может использоваться регистр BP, но не SP.

Допустим первоначально регистр SP содержал значение 80h Запись каждого слова в стек уменьшает содержимое SP на 2:

Содержимое стека

BP

IP

CS

dummy1

dummy2



DummyN

Указатель SP

74h

76h

78h

7Ah

7Ch



80h




BP=SP=72h

Так как BP теперь также содержит 0072,то первый параметр (dummy1) будет по адресу BP+6, а N-й параметр по адресу BP+6+2•N.

Перед возвратом в вызывающую программу в регистре BP восстанавливается первоначальное значение, а содержимое в регистре SP увеличивается на 2. Последняя команда RET представляет собой «длинный» возврат в вызывающую программу. По этой команде выполняются следующие действия:

  • Из вершины стека восстанавливается значение регистра IP.

  • Содержимое регистра SP увеличивается на 2.

  • Из новой вершины стека восстанавливается значение регистра CS.

  • Содержимое регистра SP увеличивается на 2.

Таким образом, осуществляется корректный возврат в вызывающую программу. Осталось одно небольшое пояснение. После команды вызова call следует команда add sp,2N. Число 2N представляет собой число байт в стеке использованных при передаче параметров. Эта команда “выталкивает” из стека ненужные больше параметры.
3. Ход работы.

Для решения поставленной задачи я создал несколько текстовых файлов, в которых находятся исходные тексты программ. В файле rinako_c.cpp находится текст программы на С++ в которой производится вызов ассемблерных функций ,исходный текст которых находится в файле rinako_a.asm

_______________________________________________________________________________________

C помощью транслятора tasm получил объектный файл rinako_a.obj .

tasm /ml rinako_a.asm

Флаг /ml я использовал для того, чтобы транслятор различал в названиях функций и переменных строчные и заглавные буквы.

_______________________________________________________________________________________

Затем откомпилировал файл rinako_c.cpp при помощи утилиты bcc.exe и получил объектный файл rinako_с.obj

bcc -ms -P –c rinako_с.cpp

Флаг -ms указывает компилятору модель памяти программы.

Флаг -Р указывает что надо использовать С++ компилятор.

Флаг -с указывает что надо провести только компиляцию.

а затем скомпоновал объектные файлы, получив исполняемый

_______________________________________________________________________________________

При помощи утилиты tlink.exe я скомпановал полученные объектные файлы и получил исполняемый файл rinako.exe .

tlink /с /Tde c0s+ rinako_с + rinako_a, rinako, rinako, cs

Флаг /c указывает ,что необходимо различать строчные и заглавные буквы

Флаг /Tde указывает тип исполняемого файла : DOS exe .

_______________________________________________________________________________________
4. Пояснения к исходным текстам .

Организация связи программ на С++ и ассемблере требуют определенного описания, используемых взаимно функций и переменных. Так ассемблерная функция Func определяется в С++ модуле как: extern “C” void Func(void);

Это говорит о том ,что данная функция находится в другом модуле. А также, что функция использует Си соглашение о связях. В ассемблерном модуле директива определения модели памяти используется следующим образом: .model small,c

Второй операнд директивы указывает транслятору генерировать имена переменных и функций в соответствии с Си соглашением об именах.

При написании программ было учтено что в модели small все функции имеют тип NEAR и расположены в одном сегменте. по умолчанию генерируется близкий вызов функций. large функции имеют тип FAR и расположены в разных сегментах. по умолчанию генерируется дальний вызов функций. Поэтому ассемблерные процедуры принимающие параметры через стек должны писаться с учетом модели памяти. В частности для корректного вызова Си функции из ассемблера необходимо явно указывать тип вызова :

call far ptr Func ;для модели large

call near ptr Func ;для модели small
Список используемых функций.

Adding – ассемблерная функция демонстрирует принятие двух параметров через стек и один параметр глобальный, затем выполняет сложение трех чисел и возвращает результат в С - функцию.

Описание int adding(int,int);

Функция принимает два параметра типа int.

Возвращаемое значение int

Printf – C - функция, которая вызывается из ассемблерного модуля, демонстрируя вывод строки на экран.

Описание void printf(“String”);

Функция принимает строку.

Возвращаемое значение void

Getch – C - функция, которая вызывается из ассемблерного модуля, демонстрируя ожидание нажатия какой либо кнопки для продолжения.

Описание int getch(void);

Функция принимает значение типа void

Возвращаемое значение int – ASCII - код нажатой клавиши.

Main – основная функция программы написанная на языке С++. Из функции производится вызов

демонстрационных функций, перечисленных выше.

5. Исходные тексты программ.

файл rinako_a.asm

PUBLIC C adding

EXTRN _printf, _getch, _a:word

_data segment public 'data'

text1 db 'Сейчас находимся в ASSEMBLERE и складываем эти три числа’,0

text2 db 13, 10, 'Нажмите любую клавишу для перехода в C++', 0

_data ends

_text segment public 'code'

assume cs:_text

;////////////////////////////////////////////////

adding proc near

push bp

mov bp,sp

push offset text1

call near ptr _printf

add sp,2

xor ax,ax

mov ax,_a

add ax,[bp+4]

add ax,[bp+6]

push ax

push offset text2

call near ptr _printf

add sp,2

call near ptr _getch

pop ax

pop bp

ret

adding endp

;////////////////////////////////////////////////

_text ends

end

Файл rinako_c.cpp

#include

#include

extern "C" pascal far int adding (int b,int c);

int a;

void main(void)

{

int b,c,sum;

clrscr();

printf("Сейчас МЫ находимся в С++\n");

printf("\nВведите три числа :\n");

scanf("%d%d%d",&a,&b,&c);

sum=adding(b,c);

printf("\nПерешли в С++\n");

printf("Сумма чисел равна :%d",sum);

getch();

}

6. Демонстрация работы программы.

Сейчас МЫ находимся в С++

Введите три числа:

10 20 30

Сейчас находимся в ASSEMBLERE и складываем эти три числа

Нажмите любую клавишу для перехода в C++

Перешли в С++

Сумма чисел равна: 60

Лабораторная работа 2. Основы работы с MS-DOS (3)
Задание :

1. Ознакомится:

с версией ОС,

с составом ОС.

2. Используя информационные утилиты DOS и третьих фирм, получить информацию по аппаратной и программной конфигурации, распределению оперативной памяти, резидентных программах и драйверах.

2. Создать вариант ОС на FD

  • отформатировать FD (FORMAT),

  • перенести системные файлы (SYS),

  • создать каталог \DOS,

  • скопировать внешние программы DOS,

  • создать файлы CONFIG.SYS и AUTOEXEC.BAT.

  • создать несколько текстовых файлов.

3. Выполнить

  • загрузку с FD,

  • показательные примеры внутренних команд,

  • показательные примеры внешних команд.

5. Выполнить обработку текстовых файлов с использованием фильтров и перенаправления потоков ввода вывода.

6. Создать командный файл с передачей параметров, управлением отображением через ANSI-драйвер, проверкой кодов возврата и т.д.

7. Ознакомиться с возможностями дисковых утилит ScanDisk,

Defragmenter, Backup.

8. Ознакомиться с работой дискового компрессора DoubleSpace.

Создать сжатый логический диск на дискете.

  1. Состав операционной системы MS-DOS

Систему можно разделить на шесть основных частей. Первая часть – это система BIOS в ПЗУ. Это система поставляется вместе с компьютером и может использоваться любой операционной системой. Функция BIOS в ПЗУ заключается в обслуживании основных и наиболее фундаментальных операций компьютера. Поскольку система BIOS в ПЗУ для PC является "встроенной" в комптютер, она является не только составной частью ДОС, но и составной частью любой операционной системы .Еще одна часть - "загрузочная запись" дискеты. Загрузочная запись - это очень короткая и простая программа, находящаяся в первом секторе загрузочной дискеты. Функция этой программы заключается в запуске процесса загрузки операционной системы после включения компьютера или перезапуска (нажатия клавиш CTRL-Alt-Del). Загрузочная запись считывает еще два модуля операционной системы в память и они завершают процесс загрузки DOS.

Следующие две части DOS представляют собой дисковые файлы IO.SYS и MSDOS.SYS. Обе эти части загружаются в память загрузочной записью и остаются в памяти во время работы DOS. Файл IO.SYS представляет собой изменяемое дополнение к системе BIOS в ПЗУ. Система BIOS в ПЗУ, IO.SYS и драйверы устройств, вместе взятые образуют "физический" уровень операционной системы.Файл MSDOS.SYS реализует основные услуги DOS. Это "логический" уровень ввода/вывода операционной системы. Оба эти файла являются "скрытыми" системными файлами. Имена этих файлов не включаются в оглавление диска, вызываемое по команде DIR. Одна из функций IO.SYS заключается в загрузке еще одного модуля операционой системы.Пятая часть - это дисковый файл COMMAND.COM. Главная функция COMMAND.COM заключается в обработке команд, вводимых пользователем. Команды DOS, считающиеся внутренними, такие как TYPE, COPY и DIR фактически реализуются программами COMMAND.COM. Собственно COMMAND.COM разделяется на две части: одна становится частью MSDOS.SYS, а вторая - процессором дополнительных команд.

Шестая и последняя часть DOS состоит из всех внешних команд, таких как FORMAT и MEM. Функции этих команд различны и реализующие их программы загружаются в память только в случае необходимости. В отличие от остальных пяти частей DOS, все эти дополнительнве программы не являются интегральной составляющей DOS, хотя они и поставляются вместе с ней. Некоторые из этих дополнительных программ, например, FORMAT, настолько важны, что обойтись без них практически невозможно.Внешние команды являются нерезидентными частями DOS, поскольку они не находятся в памяти постоянно.


  1. Работа в ОС MS-DOS
1   2   3   4   5   6   7   8   9   10   11

Похожие:

Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс дисциплины «электронно-программное обеспечение гидроакустики»
Учебно-методический комплекс составлен в соответствии с требованиями государственного образовательного стандарта высшего профессионального...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс по дисциплине «Маркетинг»
Учебно-методический комплекс предназначен для студентов очной формы обучения, содержит план лекционных и практических занятий, рекомендации...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс по дисциплине «Маркетинг»
Учебно-методический комплекс предназначен для студентов заочной формы обучения, содержит план лекционных и практических занятий,...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс дисциплины «Правовое обеспечение экономики»
Учебно-методический комплекс составлен в соответствии с требованиями государственного образовательного стандарта высшего профессионального...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс по дисциплине «Языки и среды реализации web -приложений»
Учебно-методический комплекс предназначен для студентов заочной формы обучения, содержит план лекционных и практических занятий,...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс дисциплины «Правовое обеспечение финансовых решений»
Учебно-методический комплекс составлен в соответствии с требованиями федерального государственного образовательного стандарта высшего...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс дисциплины «организационное поведение»
Учебно-методический комплекс дисциплины составлен в соответствии с требованиями государственного образовательного стандарта высшего...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс дисциплины «Торговое оборудование»
Учебно-методический комплекс дисциплины составлен в соответствии с требованиями государственного образовательного стандарта высшего...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс дисциплины «Русский язык и культура речи»
Учебно-методический комплекс дисциплины составлен в соответствии с требованиями государственного образовательного стандарта высшего...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс дисциплины обсужден на заседании кафедры...
Учебно-методический комплекс дисциплины составлен на основании требований государственного образовательного стандарта высшего профессионального...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс дисциплины
Учебно-методический комплекс дисциплины составлен на основании государственного образовательного стандарта высшего профессионального...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс дисциплины
Учебно-методический комплекс дисциплины составлен на основании государственного образовательного стандарта высшего профессионального...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс дисциплины архитектура ЭВМ 090104. 65...
Учебно-методический комплекс дисциплины составлен на основании требований государственного образовательного стандарта высшего профессионального...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс дисциплины «коммерческое право»
Учебно-методический комплекс дисциплины составлен в соответствии с требованиями государственного образовательного стандарта высшего...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс дисциплины «римское право»
Учебно-методический комплекс дисциплины составлен в соответствии с требованиями государственного образовательного стандарта высшего...
Учебно-методический комплекс дисциплины «Системное программное обеспечение» icon Учебно-методический комплекс дисциплины «Таможенное право»
Учебно-методический комплекс дисциплины составлен в соответствии с требованиями государственного образовательного стандарта высшего...

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск