Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы теория.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
37.81 Кб
Скачать

2.Порядок передачи параметров в процедуру(функцию) на паскале. Привести пример программы, нарисовать стек процедуры (функции).

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

Передаются по ссылке все параметры переменные не зависимо от ссыл-

ки. Массивы и записи, если их размер превышает 4 байта. Множества пере-

даются по ссылке. Строки.

Типы boolean, как байт с фиксированным значением 0 или 1.

Перечислимый тип, как byte.

integer или word как 2 байта

longinteger как 2 слова

real как 3 слова

массивы и записи размером <= 4 байта

longinteger - AX:DX

real - DX:BX:AX

Обычно функция возвращает одно скалярное значение. В TP - искдюче-

ние string, которое является структурированный тип, однако с другой сто-

роны имеются средства обработки как скаляра.

Function obr (S:string):string

s1:=obr(S2) │ │

├──────────────┤

│адрес возврата│

├──────────────┤

адрес┌┤смещение │

s │├──────────────┤

└┤сегмент │

├──────────────┤

адрес┌┤смещение │

s1 │├──────────────┤

└┤сегмент │

└──────────────┘

Внутри функции имеется адрес параметра S, по которому записана ис-

ходная строка и адрес переменной S1, в которой записывается результирую-

щая строка, выходной параметр stroka возвращается автоматически.

3. Функция открытия файла ah=3dh int 21h.Алгоритм работы, пример использования.

Процедура открытия файла(reset(f)

Функция открытия файла ah=3d открывает файл для работы в трех ре-

жимах, которые будем рассматривать как три операции работы с файлами.

Open_f proc near

;Процедура открытия файла. Режим работы с файлом определяется

;значением регистра al.

; | 0 - только чтение

; al= < 1 - только запись

; | 2 - чтение/запись

;Для обращения к процедуре используются операторы:

;----------------------mov al,<код режима работы>

;----------------------lea dx,Name_file;

;----------------------call Create_f

;----------------------mov fILE_nom,ax ; запомнить номер файла

push dx

push ax ;сохраняем код режима

mov ah,3dh

int 21h

jnc Op_ret

pop dx ;восстанавливаем код режима

and dx,0ffh ;и формируем код одной из трех операций

add dx,2 ; 'открыть файл для чтения'

; 'открыть файл для записи'

; 'открыть файл для чтения/записи'

push ax ;Код ошибки

push dx ; Погружаем код операции в стек

call Er_IO

Op_ret: pop dx

pop dx

ret

Open_f endp