Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТ_ОРГ_1.doc
Скачиваний:
29
Добавлен:
18.11.2019
Размер:
1.27 Mб
Скачать

Закрытие файла

Входные параметры:

AH – 3Eh

DS:DX – адрес строки, содержащей имя нового файла

AL – метод доступа (0 – чтение, 1 – запись, 2 – чтение/запись)

Выходные параметры:

AX – номер ошибки, если флаг CF был установлен в случае ошибки.

Чтение из файла

При работе с файлами на Ассемблере следует знать, что единичной записью является байт. Все записи имеют номера от 0 до L-1 где L –длина файла в байтах. При открытии файла указатель устанавливается на «0». При чтении или записи указатель автоматически передвигается на «n» байт (где n –число записанных или прочитанных байт).

Входные параметры:

AH – 3Fh

BX – номер файла (так называемый “указатель”, получаемый при открытии)

CX – количество байт, которое надо прочитать

DS:DX – адрес буфера, куда данные будут считываться

Выходные параметры:

AX – номер ошибки, если флаг CF был установлен в случае ошибки.

Если ошибок не было, то в AX – реальное количество байт, которое было считано.

Запись в файл

Входные параметры:

AH – 40h

BX – номер файла

CX – количество байт, которое надо записать

DS:DX – адрес буфера, откуда данные будут записываться

Выходные параметры:

AX – номер ошибки, если флаг CF был установлен в случае ошибки.

Если ошибок не было, то в AX – реальное количество байт, которое было считано.

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

Очистка экрана

MOV AX, 3

INT 10h

Задержка в 1/18 секунды

MOV

AX, 40h

MOV

ES, AX

MOV

AX, ES:[6Ch]

LABEL1:

CMP

AX, ES:[6Ch]

JE

LABEL1

Дополнительные средства ассемблера

В языке ассемблера существуют средства, позволяющие, во-первых, задать используемую в программе модель памяти и, во-вторых, упростить описание сегментов такой программы. Модель памяти задается с помощью директивы .model. В качестве аргумента этой директивы выступает ключевое слово, определяющее используемую модель памяти. Малая (трёхсегментная) модель описывается ключевым словом small, крошечная (односегментная) - ключевым словом tiny. Указание директивы .model позволяет далее использовать упрощенные директивы описания сегментов.

Пример программы вывода строки:

.model small

; описание сегмента команд

.code

main proc

mov ax, @data (или _data)

mov ds, ax

mov ah, 09h

mov ax, offset mes

int 21h

; выход в DOS

mov ax, 4c00h

int 21h

main endp

.data

mes db ‘OK!$’

.stack 256; размер стека 256 бит

end main

Транслятор языка ассемблер предоставляет набор символических имен (идентификаторов) для сегментов команд (@code или _code), данных (@data или _data) и стека (stack).

Если в программе предполагается использовать расширенный состав команд МП Pentium, то начало программы будет выглядеть:

.586

.model use16 small

.code и т.д.