08.05.2013 Views

INTRODUCCIÓN El documento que está visualizando tiene la ...

INTRODUCCIÓN El documento que está visualizando tiene la ...

INTRODUCCIÓN El documento que está visualizando tiene la ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

LENGUAJE ENSAMBLADOR LABORATORIO DE COMPUTADORAS<br />

OPERADORES ARITMÉTICOS<br />

Pueden emplearse libremente (+), (-), (*) y (/) - en este último caso <strong>la</strong> división es siempre entera-.<br />

Es válida, por ejemplo, <strong>la</strong> siguiente línea en ensamb<strong>la</strong>dor (<strong>que</strong> se apoya en <strong>la</strong> directiva DW, <strong>que</strong><br />

se verá más ade<strong>la</strong>nte, para reservar memoria para una pa<strong>la</strong>bra de 16 bits):<br />

Dato DW 12*(numero+65)/7<br />

También se admiten los operadores MOD (resto de <strong>la</strong> división) y SHL/SHR (desp<strong>la</strong>zar a <strong>la</strong><br />

izquierda/derecha cierto número de bits). Obviamente, el ensamb<strong>la</strong>dor no codifica <strong>la</strong>s<br />

instrucciones de desp<strong>la</strong>zamiento (al aplicarse sobre datos constantes el resultado se calcu<strong>la</strong> en<br />

tiempo de ensamb<strong>la</strong>je):<br />

Dato DW (12 SHR 2) + 5<br />

OPERADORES LÓGICOS<br />

Pueden ser el AND, OR, XOR y NOT. Realizan <strong>la</strong>s operaciones lógicas en <strong>la</strong>s expresiones. Ej.:<br />

MOV BL, (255 AND 128) XOR 128 ; BL = 0<br />

OPERADORES RELACIONALES<br />

Devuelven condiciones de Verdadero (0FFFFh ó 0FFh) o Falso (0) evaluando una expresión.<br />

Pueden ser: EQ (igual), NE (no igual), LT (menor <strong>que</strong>), GT (mayor <strong>que</strong>), LE (menor o igual <strong>que</strong>),<br />

GE (mayor o igual <strong>que</strong>).<br />

Ejemplo:<br />

dato EQU 100 ; «dato» vale 100<br />

MOV AL, dato GE 10 ; AL = 0FFh (Verdadero)<br />

MOV AH, dato EQ 99 ; AH = 0 (Falso)<br />

OPERADORES DE RETORNO DE VALORES<br />

* Operador SEG: devuelve el valor del segmento de <strong>la</strong> variable o eti<strong>que</strong>ta, sólo se puede<br />

emplear en programas de tipo EXE:<br />

MOV AX, SEG tab<strong>la</strong>_datos<br />

* Operador OFFSET: devuelve el desp<strong>la</strong>zamiento de <strong>la</strong> variable o eti<strong>que</strong>ta en su segmento:<br />

MOV AX, OFFSET variable<br />

Si se desea obtener el offset de una variable respecto al grupo (directiva GROUP) de<br />

segmentos en <strong>que</strong> <strong>está</strong> definida y no respecto al segmento concreto en <strong>que</strong> <strong>está</strong> definida:<br />

También es válido:<br />

MOV AX, OFFSET nombre_grupo:variable<br />

MOV AX, OFFSET DS:variable<br />

* Operador .TYPE: devuelve el modo de <strong>la</strong> expresión indicada en un byte. <strong>El</strong> bit 0 indica<br />

modo «re<strong>la</strong>tivo al código» y el 1 modo «re<strong>la</strong>tivo a datos»; si ambos bits <strong>está</strong>n inactivos significa<br />

modo absoluto. <strong>El</strong> bit 5 indica si <strong>la</strong> expresión es local (0 si <strong>está</strong> definida externamente o<br />

indefinida); el bit 7 indica si <strong>la</strong> expresión con<strong>tiene</strong> una referencia externa. Este operador es útil<br />

sobre todo en <strong>la</strong>s macros para determinar el tipo de los parámetros:<br />

info .TYPE variable<br />

Página 20 Ing. Sánchez Rivero

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!