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

2. Использование командной строки при запуске exe-файла.

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

Ввод с клавиатуры

AH=3fh

mov AH,3Fh

mov BX,0

mov CX,5

lea DX,IOA

int 21h

je err

При вводе символов с клавиатуры они отображаются с текущей позиции

курсора. Количество набранных символов не ограничивается числом в CX, на-

пример, на клавиатуре набрано(на экране отображено)

Дескриптор <Enter>

После нажатия <Enter> строка помещается в системный буфер ввода(область

оперативной памяти). Символы 13, 10 завершают строку.

┌──────────┬──┬──┐

│Дескриптор│13│10│

└──────────┴──┴──┘

Первые 5 символов переписываются из буфера ввода в область IOA,где

записана строка "Дескр". Буфер ввода не сбрасывается. При повтореном вы-

зове функции будет осуществляться чтение из буфера ввода(обращения к

клавиатуре и задержки выполнения программы не будет). В поле IOA занесет-

ся строка "иптор".

При первом и втором обращении к функции в AX возвращается число 5.

В буфере осталось еще 2 символа(13,10). При третьем обращении к функции

считываются эти символы, а в AX возвращается число 2.

Максимальное количество символов, которые набраны на клавиатуре и

отображаются на экране равно 127. При 128 нажатии клавиши выдается зву-

ковой сигнал. При нажатии Enter в системный буфер ввода сбрасываются 127

символов, а за ними добавляются символы 13, 10.

Билет 8.

2. Организация «оператора case» на ассемблере с использованием внутрисегментного косвенного перехода.

Пример. Реализация оператора Case(программного дешифратора) на

ассемблере с использованием команды CALL.

case i of

i - номер команды

1: PP1

2: PP2

--------

15: PP15

end;

dseg segment

adr dw PP1,PP2,...,PP15

┌───────┬───────┬───┬────────┐

поле adr │адр PP1│адр PP2│...│адр PP15│

└───────┴───────┴───┴────────┘

;{формирование номера подпрограммы NPP}

mov SI,NPP

sub SI,1 ; Определение смещения в поле Adr.

shl SI ;

CALL Adr[SI] ;Прямая адресация с индексированием определяет

;слово в памяти, в котором содержится адрес под-

;программы с номером NPP.

Пример реализации программного дешифратора с использованием команды

JMP.

Пусть в программе используются метки M1,M2,...,M15. При наличии

adr dw M1,m2,...,M15

можно организовать case командой

jmp adr[SI].

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

Создание файла.

mov AH,3Ch

mov CX,атрибут

lea DX,file_name

int 21h

jc err

mov file_num,AX

При создании файла он открывается для записи и чтения, т.е. до

закрытия в файл можно писать и читать из него. Для работы с файлом ис-

пользуется системная переменная - указатель. Указатель имеет такое же

назначение как курсор на экране. Позиции файла это байты, которые про-

нумерованы с нуля. С позиции указателя осуществляются операции чтения/

записи. После создания файл пустой, его указатель равен 0. Запись пер-

вого байта переводит указатель в позицию 1 и т.д. До закрытия файла

можно прочитать записанную информацию, для чего указатель нужно пере-

местить назад. Это выполняется функцией SEEK(эта функция должна быть

известна из Паскаля).

Билет 9.