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

Логические операции

AND: Если оба из сравниваемых битов равны 1, то результат равен 1; во всех остальных случаях результат – 0

Пример:

AND AL, BH ; устанавливает в AL 0100 0100

AND AL, 00 ; устанавливает в AL 0000 0000

AND AL, 0Fh ; устанавливает в AL 0000 0101

OR: Если хотя бы один из сравниваемых битов равен 1, то результат равен 1; если сравниваемые биты равны 0, то результат – 0

Пример:

OR BH, AL ; устанавливает в BH 1101 1101

XOR: Если один из сравниваемых битов равен 0, а другой равен 1, то результат – 1; если сравниваемые биты одинаковы, то результат – 0

Пример:

XOR AL, AL ; устанавливает в AL 0000 0000

TEST: Действует как AND – устанавливает флаги, но не изменяет биты

TEST BL, 11110000B

JNZ …

TEST AL, 00000001B

JNZ …

NOT – инвертирует значения бит в байте\слове\регистре\памяти. Флаги не меняются

AL = 1100 0101

NOT AL = 0011 1010

Работа с файлом

int 13h – прерывание BIOS, на нижнем уровне

int 21h – прерывание DOS, на верхнем уровне

Каждому подкаталогу отводится 32 байта

Дескрипторы

0 – стандартный ввод (с клавиатуры)

1 – стандартный вывод (на экран)

2 – стандартная ошибка (на экран)

3 – стандартный вспомогательный порт

4 – стандартный принтер (вывод на принтер)

Функции DOS для работы с файлом

3C – создать (уничтожается имеющийся)

5A – создать временный файл (в DS:DX адрес пути к файлу НЕ ИМЕНИ в строке должно быть 13 пустых байт)

5B – создает новый файл (если существует, то завершение с CF = 1)

3D – открыть

3E – закрыть

68h – сбросить на диск

41h – удалить

42h – установить указатель (AL = 0 – в начало; AL = 1 – текущее положение значения смещения в CX:DX; AL = 2 – в конец)

3F – читать из файла

40h – записать в файл

43h – получить и установить атрибуты файла

56h – переименовать (старое имя – в DS:DX, новое – в ES:DX[?])

Атрибуты файла в CX (для создания с 3C):

0 – нет атрибутов

1 – только чтение

2 – скрытый

4 – системный

8 – метка тома

20 – атрибут архива

Режимы доступа в AL

0 – чтение

1 – запись

2 – чтение-запись

Примеры:

1) Создание

MOV AH, 3Ch

MOV CX, 0

MOV DX, OFFSET FILENAME ; адрес имени

INT 21h

MOV HANDLE, AX

DATA SEGMENT

FILENAME DB ‘myfile’, 0

HANDLE DW ?

Остальное – в лабах и методичке

Команды сдвига и циклического сдвига

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

- обрабатывают байт или слово

- имеют доступ к регистру или к памяти

- сдвигают влево или вправо

- сдвигают на величину до 8 бит (для байта) и 16 бит (для слова)

- сдвигают логически (без знака) или арифметически (со знаком)

При выполнении команд сдвига флаг CF всегда содержит значение последнего выдвинутого бита. Команды сдвига:

SHR ; логический сдвиг вправо

SHL ; логический сдвиг влево

SAR ; арифметический сдвиг вправо

SAL ; арифметический сдвиг влево

Пример:

MOV CL, 03 ; AX:

MOV AX, 10110111B ; 10110111

SHR AX,1 ; 01011011 сдвиг вправо на 1

SHR AX,CL ; 00001011 сдвиг вправо на 3

MOV CL,03

MOV AX,10110111B ; 10110111

SAR AX, 1 ; 11011011

SAR AX,CL ;

Для заполнения левого бита SAR использует знаковый бит, SHR заполняет нулями

Сдвиг влево используется для удваивания чисел, а сдвиг вправо – для деления на 2.

Для проверки бита, занесенного в флаг CF, используется команда JC

Команды циклического сдвига – выдвинутый бит занимает освободившийся разряд

ROR ; циклический сдвиг вправо

ROL ; циклический сдвиг влево

RCR ; циклический сдвиг вправо с переносом

RCL ; ; циклический сдвиг влево с переносом