Методы адресации
Download 235.15 Kb.
|
065-20. группа Белая .А
- Bu sahifa navigatsiya:
- Индексный оператор
- Оператор переопределения сегмента
- Оператор именования типа структуры .
- Оператор получения смещения выражения offset
- Оператор определения длины массива length
- Оператор type
Логические операторы выполняют над выражениями побитовые операции. Выражения должны быть константными. Например,
L1 equ 10010011 … mov al, L1 xor al, 01h ;al=10010010 Индексный оператор [ ]. Транслятор воспринимает наличие квадратных скобок как указание сложить значение выражения за [] со значением выражения, заключенным в скобки. Например, mov eax, mas[esi] ;eax=*(mas+(esi)) Наличие индексного оператора указывает транслятору, что необходимо получить значение по вычисленному адресу. Оператор переопределения типа ptr применяется для переопределения или уточнения типа метки или переменной, определяемых выражением. Тип может принимать одно из следующих значений.
str1 db «Привет», 0 … lea esi, str1 cmp byte ptr[esi], 0 ; [esi]==0? В примере для сравнения значения по адресу esi с константой необходимо явно указать, данные какого типа будут сравниваться. Оператор переопределения сегмента : (двоеточие) вычисляет физический адрес относительно конкретно задаваемой сегментной составляющей, в качестве которой могут выступать: имя сегментного регистра, имя сегмента из соответствующей директивы SEGMENT имя группы. Для выборки на выполнение очередной команды микропроцессор анализирует содержимое сегментного регистра CS, в котором содержится физический адрес начала сегмента кода. Для получения адреса конкретной команды микропроцессор складывает промасштабированное (умноженное на 16) значение сегментного регистра CS с содержимым регистра EIP. Запись CS:EIP содержит адрес текущей выполняемой команды. Аналогично обрабатываются операнды в машинных командах. Оператор_именования_типа_структуры_.'>Оператор именования типа структуры . (точка) также заставляет транслятор производить определенные вычисления, если встречается в выражении. Оператор получения сегментной составляющей адреса выражения seg возвращает физический адрес сегмента для выражения, в качестве которого могут выступать метка, переменная, имя сегмента, имя группы или некоторое символическое имя. Оператор получения смещения выражения offset позволяет получить значение смещения выражения в байтах относительно начала того сегмента, в котором выражение определено. Например, .data str1 db «Привет»,0 .code mov esi, offset str1 mov al, [esi] ; al = ‘П’ Оператор определения длины массива length возвращает число элементов, определенных операндом dup. Если операнд dup отсутствует, то оператор length возвращает значение 1.Например, tabl dw 10 dup(?) … mov edx, length tabl ; edx=10 Оператор type возвращает число байтов, соответствующее определению указанной переменной: fldb db ? tabl dw 10 dup(?) … mov eax, type fldb ;eax = 1 mov eax, type tabl ;eax = 2 Download 235.15 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling