
- •2. Работа с файлами с использованием дескриптора файла, стандартные файлы-устройства.
- •3. Косвенный межсегментный переход, формат команды, адресация перехода, алгоритм команды, флаги, пример использования команды.
- •2. Структура байта атрибута, назначение атрибутов файла.
- •3. Команда дальнего возврата, формат команды, адресация перехода,
- •2. Организация главной программы как дальней процедуры.
- •3 Команда test, алгоритм команды, формируемые флаги, формат, пример использования
- •2. Инициализация сегментных регистров при запуске exe-файла.
- •3. Команды арифметического сдвига, алгоритмы команды, флаги, формат, пример использования.
- •2. Параметр объединения at, пример использования.
- •3. Команды циклического сдвига, алгоритмы команды, флаги, формат, пример использования.
- •2.Параметры директивы сегмент public и stack. Условия их применения.
- •3 Команды циклического сдвига через флаг переноса, алгоритмы команд, флаги, формат, пример использования.
- •2. Использование командной строки при запуске exe-файла.
- •2. Организация «оператора case» на ассемблере с использованием внутрисегментного косвенного перехода.
- •2.Порядок передачи параметров в процедуру(функцию) на паскале. Привести пример программы, нарисовать стек процедуры (функции).
Билет 1.
2. Работа с файлами с использованием дескриптора файла, стандартные файлы-устройства.
Ввод-вывод с устройствами организован системно, устройство сопос-
тавляется файлу. Используются унифицированные функции, которые одинако-
во работают с экраном, принтером, клавиатурой и дисковым файлом.
В любой программе существует 5 стандартных файлов-устройств, ко-
торые задаются описателями:
0 - ввод с клавиатуры;
1 - вывод на экран;
2 - вывод ошибок на экран;
3 - ввод-вывод в последовательный порт;
4 - вывод на принтер.
На диске много файлов, если в программе открыт 1-й файл, то ему при-
сваивается N5, второму файлу - N6, если закрыть второй файл, то описа-
тель 6 освобождается, и тогда при открытии 3-го файла ему ставится в
соответствие описатель N6. Допустимое количество одновременно открытых
файлов в MS DOS задается в файле config.sys следующей командой
files= <количество файлов>.
В функциях расширенной версии используются регистры AX,CX,BX,DX.
В большинстве случаев эти регистры используются для следующих целей:
AX: на входе AH - код функции
на выходе AX - число : при открытии файла - номер файла, в опе-
рациях чтения/записи - число реально
перданных байт. При возникновении ошибки
AX - номер ошибки.
BX: описатель файла.
CX: число затребованных байт при вводе и выводе.
DX: адрес строки, при открытии файла или адрес поля ввода-вывода в
операциях чтения и записи.
Флаг CF (перенос) на выходе сигнализирует об ошибке при выполнении
любых операций.
3. Косвенный межсегментный переход, формат команды, адресация перехода, алгоритм команды, флаги, пример использования команды.
Косвенный межсегментный переход. Команды реализуются с исполь-
зованием постбайта. Адрес перехода занимает двойное слово. Поэтому
косвенная адресация через регистр не используется.
Формат команды CALL
┌─────┐ ┌───┬───┬────┐ ┌─────────┐
│ КОП │ │mod│КОП│r/m │ │disp16 │
└─────┘ └───┴───┴────┘ └─────────┘
В данной команде поле reg не используется, и mod<>11.
Пример перехода с использованием адресной константы.
Адресная константа должна быть длиной два слова.
adr dd PP1
┌────────┬───────┐
│смещение│сегмент│
└───┴────┴───┴───┘
вызов:
CALL adr
или
CALL dword ptr Adr.
┌─────┐ ┌───┬───┬────┐ ┌─────────┐
│ КОП │ │00 │КОП│110 │ │Адрес Adr│
└─────┘ └───┴───┴────┘ └─────────┘
Прямой адрес указывает на Adr, где располагается адрес подпрограммы.
Примеры использования других режимов адресации.
call dword ptr [SI]
регистр SI и указывает на поле памяти, где обязательно должно быть 4
байта.
┌────────┬───────┐
[SI] -> │смещение│сегмент│
└────────┴───────┘
call dword ptr [BX + SI + 4]
┌────────┬───────┐
│смещение│сегмент│
└───┴────┴───┴───┘
Билет 2.