Instrucciones del lenguaje ensamblador

Solo disponible en BuenasTareas
  • Páginas : 30 (7467 palabras )
  • Descarga(s) : 0
  • Publicado : 16 de octubre de 2010
Leer documento completo
Vista previa del texto
Lenguaje Ensamblador

UNIDAD II ELEMENTOS DEL LENGUAJE
2.1 INSTRUCCIONES LINEALES.
2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 Movimientos. Pila. Matemáticos. Ajustes. Comparación.

2.2

SALTOS.
2.2.1 2.2.2 Incondicionales. Condicionales.

2.3

TIPOS DE CICLOS.

2.4 OPERADORES LÓGICOS. 2.5 DESPLAZAMIENTO.
2.5.1 2.5.2 Lineal. Circular.

2.6 PROCESOS DE CONTROL.
2.6.1 2.6.2 Banderas. Cadenas.M. D. O. H. Sonia Alvarado Mares

77

Lenguaje Ensamblador

2.1 INSTRUCCIONES LINEALES.
2.1.1 Movimientos.
MOV (transferencia).
Sintaxis: Indicadores: MOV destino, origen OF DF IF TF SF ZF AF PF CF - - - - - - - -

La instrucción de transferencia de datos por excelencia es MOV. Transfiere datos de longitud byte o palabra del operando origen al operando destino. Pueden ser operandoorigen y operando destino cualquier registro o posición de memoria direccionada de las formas ya vistas, con la única condición de que origen y destino tengan la misma dimensión. Con la instrucción MOV diremos que se pueden realizar todo tipo de movimientos teniendo en cuenta las siguientes restricciones: 1. No se puede realizar una transferencia de datos entre dos posiciones de memoriadirectamente, por esta razón, siempre que queramos efectuarlas tendremos que utilizar un registro intermedio que haga de puente. Por ejemplo, para hacer la operación DATO1 ← DATO2 la instrucción MOV DATO2, DATO1 sería incorrecta. Lo que sí sería correcto sería utilizar el registro DX, u otro, como puente y hacer: MOV DX, DATO1 MOV DATO2, DX 2. Tampoco se puede hacer una transferencia directa entre dosregistros de segmento. Por eso, como en el caso anterior, si fuera preciso se utilizaría un registro como puente. 3. Asimismo, tampoco se puede cargar en los registros de segmento un dato utilizando direccionamiento inmediato, es decir, una constante, por lo que también habrá que recurrir a un registro puente cuando sea preciso. Existen ciertas limitaciones, como que los registros de segmento no admitenel direccionamiento inmediato: es incorrecto MOV DS, 4000h; pero no lo es por ejemplo MOV DS, AX o MOV DS, VARIABLE. No es posible, así mismo, utilizar CS como destino (es incorrecto hacer MOV CS, AX aunque pueda admitirlo algún ensamblador). Al hacer

M. D. O. H. Sonia Alvarado Mares

78

Lenguaje Ensamblador
MOV hacia un registro de segmento, las interrupciones quedan inhibidas hastadespués de ejecutarse la siguiente instrucción (8086/88 de 1983 y procesadores posteriores). Ejemplos: MOV MOV MOV DS, AX BX, ES:[SI] SI, OFFSET DATO

En el último ejemplo, no se coloca en SI el valor de la variable dato sino su dirección de memoria o desplazamiento respecto al segmento de datos. En otras palabras, SI es un puntero a DATO pero no es DATO. En el próximo capítulo se verá cómo sedeclaran las variables.

XCHG (intercambiar).
Sintaxis: Indicadores: XCHG destino, origen OF DF IF TF SF ZF AF PF CF - - - - - - - -

Una instrucción útil pero no imprescindible es XCHG. Intercambia el contenido de los operandos origen y destino. No pueden utilizarse registros de segmentos como operandos. Por ejemplo, si queremos intercambiar los contenidos de los registros AX y BX, podemoshacer: MOV AUX, AX MOV AX, BX MOV BX, AUX en donde AUX es una variable auxiliar que hace de puente, o simplemente utilizar: XCHG AX, BX Otro ejemplo: XCHG XCHG BL, CH MEM_PAL, BX

Las restricciones que presenta esta operación es que no se pueden efectuar intercambios directamente entre posiciones de memoria ni tampoco entre registros de segmento.

XLAT (traducción).
Sintaxis: Indicadores: XLATtabla OF DF IF TF SF ZF AF PF CF - - - - - - - -

M. D. O. H. Sonia Alvarado Mares

79

Lenguaje Ensamblador
La instrucción XLAT tabla carga en el registro AL el contenido de la posición [BX][AL], en donde el registro BX ha de apuntar al comienzo de una tabla. Dicho de otra manera, AL hace de índice de la tabla y de almacén destino del contenido de la tabla. Por ejemplo, el siguiente...
tracking img