Mircorensambladores

Páginas: 5 (1073 palabras) Publicado: 3 de diciembre de 2011
4.4 Operadores
1- Operadores Aritméticos
Pueden emplearse libremente (+), (-), (*) y (/) -en este ultimo caso la division es siempre entera-. Es valida, por ejemplo, la siguiente linea en ensamblador (que se apoya en la directiva DW, que se vera mas adelante, para reservar memoria para una palabra de 16 bits):
dato DW 12*(numero+65)/7
Tambien se admiten los operadores MOD (resto de ladivision) y SHL/SHR (desplazar a la izquierda/derecha cierto numero de bits). Obviamente, el ensamblador no codifica las instrucciones de desplazamiento (al aplicarse sobre datos constantes el resultado se calcula en tiempo de ensamblaje):
dato DW (12 SHR 2) + 5
2. - OPERADORES LoGICOS.
Pueden ser el AND, OR, XOR y NOT. Realizan las operaciones logicas en las expresiones. Ej.:
MOV BL,(255 AND128) XOR 128 ; BL = 0
3. - OPERADORES RELACIONALES.
Devuelven condiciones de cierto (0FFFFh o 0FFh) o falso (0) evaluando una expresion. Pueden ser: EQ (igual), NE (no igual), LT (menor que), GT (mayor que), LE (menor o igual que), GE (mayor o igual que). Ejemplo:
dato EQU 100 ; «dato» vale 100
MOV AL,dato GE 10 ; AL = 0FFh (cierto)
MOV AH,dato EQ 99 ; AH = 0 (falso)
4. - OPERADORES DERETORNO DE VALORES.
• Operador SEG: devuelve el valor del segmento de la variable o etiqueta, silo se puede emplear en programas de tipo EXE:
MOV AX,SEG tabla_datos
• Operador OFFSET: devuelve el desplazamiento de la variable o etiqueta en su segmento:
MOV AX,OFFSET variable
Si se desea obtener el offset de una variable respecto al grupo (directiva GROUP) de segmentos en que estedefinida y no respecto al segmento concreto en que esta definida:
MOV AX,OFFSET nombre_grupo:variable
tambien es valido:
MOV AX,OFFSET DS:variable
• Operador .TYPE: devuelve el modo de la expresion indicada en un byte. El bit 0 indica modo «relativo al codigo» y el 1 modo «relativo a datos», si ambos bits estan inactivos significa modo absoluto. El bit 5 indica si la expresion es local (0 siesta definida externamente o indefinida); el bit 7 indica si la expresion contiene una referencia externa. El TASM utiliza tambien el bit 3 para indicar algo que desconozco. Este operador es util sobre todo en las macros para determinar el tipo de los parametros:
info .TYPE variable
• Operador TYPE: devuelve el tamaño (bytes) de la variable indicada. No valido en variables DUP:
kilos DW 76MOV AX,TYPE kilos ; AX = 2
Tratandose de etiquetas -en lugar de variables- indica si es lejana o FAR (0FFFEh) o cercana o NEAR (0FFFFh).
• Operadores SIZE y LENGTH: devuelven el tamaño (en bytes) o el no de elementos, respectivamente, de la variable indicada (definida obligatoriamente con DUP):
matriz DW 100 DUP (12345)
MOV AX,SIZE matriz ; AX = 200
MOV BX,LENGTH matriz ; BX = 100
•Operadores MASK y WIDTH: informan de los campos de un registro de bits (vase RECORD).
5- OPERADORES DE ATRIBUTOS.
• Operador PTR: redefine el atributo de tipo (BYTE, WORD, DWORD, QWORD, TBYTE) o el
de distancia (NEAR o FAR) de un operando de memoria. Por ejemplo, si se tiene una tabla definida de la siguiente manera:
tabla DW 10 DUP (0) ; 10 palabras a 0
Para colocar en AL el primer byte dela misma, la instruccion MOV AL,tabla es incorrecta, ya que tabla (una cadena 10 palabras) no cabe en el registro AL. Lo que desea el programador debe indicirselo en este caso explicitamente al ensamblador de la siguiente manera:
MOV AL,BYTE PTR tabla
Trabajando con varios segmentos, PTR puede redefinir una etiqueta NEAR de uno de ellos para convertirla en FAR desde el otro, con objeto depoder llamarla.
• Operadores CS:, DS:, ES: y SS: el ensamblador genera un prefijo de un byte que indica al microprocesador el segmento que debe emplear para acceder a los datos en memoria. Por defecto, se supone DS para los registros BX, DI o SI (o sin registros de base o indice) y SS para SP y BP. Si al acceder a un dato este no se encuentra en el segmento por defecto, el ensamblador añadir el...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS