Автор работы: Пользователь скрыл имя, 20 Декабря 2010 в 21:42, доклад
Команда ассемблера представляет собой следующую конструкцию
Формат команд Ассемблера
Команда ассемблера представляет собой следующую конструкцию:
МЕТКА | Операция | Операнд(ы) | Комментарии |
Символьный идентификатор, значением её является адрес | Записывается
мнемоническое обозначение |
Записываются
объекты участвующие в |
Записываются любые символы, которые игнорируются транслятором |
В качестве регистровых операндов используются РОН, сегментные регистры, регистры флагов, регистры управления. Если операнд непосредственное данное, то в качестве непосредственного данного может использоваться любое число.
Ch eqv 75h
MOV AX ch
В качестве адреса может быть адресный операнд. Адресный операнд задаёт физический адрес операнда путём указания 2х составляющих сегмента и смещения
MOV AX, 0F10h
MOV ds, ax
MOV AX, ds: 00B5h
Операнд может находиться в памяти которая определяется несколькими способами адресации
MOV – прямая адресация, когда ячейки памяти присваивается символическое имя, которое транслируется в перемещаемый адрес.
Data segment
Alfa db ? ; однобайтовая ячейка памяти
Однобайтовая ячейка памяти в относительным адресом альфа начальное значение отсутствует
BETA DW 0 ; двухбайтовая ячейка с начальным значением 0
MAS DB 10DUP (20h)
data ENDS
Code SEGMENT
MOV ALFA, 23h
Косвенная адресация
При этой адресации – адрес смещения записывается в любой из регистров общего назначения, кроме 2х регистров которые работают со стеком SP и BP, значение регистра заключается в квадратные скобки
MOV AL, [BX] - Команда помещает в AL данные по адресу находящемуся в регистре BX
Косвенная базовая адресация со смещением
MOV AL, [BX+2] – адрес рассчитывается DS+BX+2
Косвенная индексная адресация со смещением
MOV AX, MAS [SI]; DS+MAS+SI
Косвенная базово-индексная адресация со смещением
MOV DH, [BX+SI]
MOV AX, [SI+2][BX]