Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Asm_lab-Rus.docx
Скачиваний:
10
Добавлен:
27.08.2019
Размер:
238.79 Кб
Скачать
    1. Содержание отчета.

Отчет должен содержать:

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

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

  1. С помощью каких директив можно задать данные и их размер?

  2. Какие способы адресации вы знаете?

  3. Какие способы адресации использованы в вашей программе?

  4. Чем отличается косвенная адресация от адресации по базе со сдвигом?

  5. Каким образом различается представление знаковых чисел от беззнаковых в памяти ЭВМ?

  6. Каким образом различается представление чисел от строк в памяти ЭВМ?

  7. Что такое регистры? Какие регистры общего назначения Вы знаете?

  8. Какие регистры общего назначения могут быть использованы в качестве индексов массива?

  9. Какие команды помогают организовать ветвление в программе? Покажите их в тексте программы.

  10. Каким образом можно организовать цикл типа for?

  11. Каким образом можно организовать цикл типа do while?

  12. Каким образом осуществляется выполнение команд условного перехода?

  13. Что такое регистр флагов? Когда он используется?

  14. Каким образом осуществляется сравнение в программах на языке ассемблер?

  15. Каким образом осуществляется представление строковых данных в памяти ЭВМ?

  1. Лабораторная работа №3 Организация подпрограмм, создание динамических библиотек.

    1. Цель работы

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

    1. Указания по подготовке к выполнению лабораторной работы

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

    1. Рекомендации по выполнению лабораторной работы

Для выполнения лабораторной работы необходимо запустить среду разработки \masm32\QEDITOR и набрать в ней тексты программ и текст библиотеки.

        1. Структура динамической библиотеки.

Общая структура динамической библиотеки приведена в листинге 3.

.586

.model flat, stdcall

option casemap :none ; с учетом регистра

; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

; подключение внешних библиотек и их описаний

include \masm32\include\windows.inc

include \masm32\include\masm32.inc

include \masm32\include\kernel32.inc

include \masm32\macros\macros.asm

includelib \masm32\lib\masm32.lib

includelib \masm32\lib\kernel32.lib

.data

; Объявление данных

. . .

.code

;сообщения, приходящие при открытии либо закрытии

;динамической библиотеки

DLL_PROCESS_DETACH equ 0

DLL_PROCESS_ATTACH equ 1

DLL_THREAD_ATTACH equ 2

DLL_THREAD_DETACH equ 3

;точка входа в библиотеку

DllEntryPoint PROC DllId:DWORD,DllEvent:DWORD,DllReserv:DWORD

MOV EAX, DllEvent

CMP EAX, DLL_PROCESS_DETACH

JNE D1

;код при закрытии библиотеки (если необходим)

. . .

JMP _EXIT

D1:

CMP EAX, DLL_PROCESS_ATTACH

JNE _EXIT

;код при загрузке библиотеки (если необходим)

. . .

_EXIT:

MOV EAX,1 ;процедура входа должна

RET 12 ;возвращать не нулевое значение

DllEntryPoint endp

; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

; Код подпрограмм библиотеки

. . .

END DllEntryPoint

При написании библиотек следует обратить внимание на то, что если подпрограмма должна быть доступна процессу, загрузившему библиотеку, то эта подпрограмма должна быть описана с использованием ключевого слова EXPORT.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]