Директива ASSUME
ASSUME <пара> {, <пара>}
где <пара> - это <сегментный регистр>:<имя сегмента>
Пример:
ASSUME ES: A, DS: B, CS: C
Начальная загрузка сегментных регистров
Пусть требуется регистр DS установить на начало сегмента В.
MOV AX, B
MOV DS, AX
Аналогично загружается регистр ЕS.
Регистр CS загружать не надо.
Регистр SS, который должен указывать на начало стека, можно загрузить двумя способами: в самой программе (также как регистры DS и ЕS), либо загрузку поручить операционной системе. Для этого в директиве SEGMENT, открывающей описание сегмента стека, указывают специальный параметр SТACK.
Структура программы
STACK SEGMENT STACK ; сегмент стека
DB 128 DUP (?)
STACK ENDS
DATA SEGMENT ; сегмент данных
<описания переменных и т.п.>
DATA ENDS
CODE SEGMENT ; сегмент команд
ASSUME CS: CODE, DS: DATA, SS: STACK
START: MOV AX, DATA
MOV DS, AX ; загрузка DS
<остальные команды программы>
CODE ENDS
END START ; конец программы, точка входа
Побитовая обработка и ее основные виды
Логические команды
Выполняют логические операции – отрицание, конъюнкцию и дизъюнкцию.
Отрицание: NOT op
Допустимые типы операнда: r8, m8, r16, m16.
MOV AL,1100b ; AL=00001100b
NOT AL ; AL=11110011b
Конъюнкция (логическое умножение): AND op1,op2
В этой команде допустимы следующие комбинации операндов:
Дата добавления: 2015-10-09; просмотров: 763;