69
II. ELEMENTOS DEL LENGUAJE Lenguaje Ensamblador 1 Ing. Saúl Román Barraza.

Elementos Del Lenguaje

Embed Size (px)

Citation preview

Page 1: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

1

II. ELEMENTOS DEL LENGUAJE

Lenguaje Ensamblador

Page 2: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

2

CONOCERÁ Y APLICARÁ LA SINTAXIS DEL LENGUAJE ENSAMBLADOR PARA MANIPULAR EL EQUIPO DE COMPUTO.

Objetivo

Page 3: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

3

2 . 1 I N S T R U C C I O N E S L I N E A L E S . 2 . 1 . 1 M O V I M I E N T O. 2 . 1 . 2 P I L A . 2 . 1 . 3 M AT E M ÁT I C O S . 2 . 1 . 4 A J U S T E S . 2 . 1 . 5 C O M PA R A C I Ó N.2 . 2 S A LT O S . 2 . 2 . 1 I N C O N D I C I O N A L . 2 . 2 . 2 C O N D I C I O N A L .2 . 3 T I P O S D E C I C L O S .2 . 4 O P E R A D O R E S L Ó G I C O S .2 . 5 D E S P L A Z A M I E N T O. 2 . 5 . 1 L I N E A L . 2 . 5 . 2 C I R C U L A R .2 . 6 P R O C E S O S D E C O N T R O L . 2 . 6 . 1 B A N D E R A S . 2 . 6 . 2 C A D E N A S . 2 . 6 . 3 C A R G A .

Contenido.

Page 4: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

4

Tipos de Instrucciones

Tipo de instrucción Efecto

Instrucciones de transferenciaMueven información entre registros, registros y posición de memoria o entre registros y puertos de entrada/salida.

Instrucciones aritméticasRealizan operaciones aritméticas: sumas, restas, etc.

Instrucciones de manejo de bitsRealizan operaciones de desplazamiento, rotación y lógicas sobre registros o posiciones de memoria.

Instrucciones de transferencia de control

Sirven para controlar la ejecución de las instrucciones del programa.

Instrucciones de entrada/salidaMueven información entre registros y puertos de entrada/salida.

Instrucciones de manejo de cadenasRealizan operaciones sobre cadenas de bytes o palabras.

Instrucciones de interrupciónProvocan que el microprocesador realice un servicio que se le solicita diferente a las instrucciones que esta ejecutando.

Page 5: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

5

2.1 Instrucciones lineales.

Nota: Para el efecto de las instrucciones sobre el registro de estado se utilizará la siguiente notación:                    -  bit no modificado                    ?  desconocido o indefinido                    x  modificado según el resultado de la operación                    1  puesto siempre a 1                    0  puesto siempre a 0

Page 6: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

6

Nombre Sintaxis Descripción Ejemplos

MOV MOV destino, origen

Transfiere un byte o una palabra desde el origen al destino

MOV CX, 112hMOV ES, AXMOV AL, 12hMOV IVA, BX

2.1.1 Movimiento.

Transferencia.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 7: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

7

Nombre Sintaxis Descripción Ejemplos

XCHG XCHG destino, origen

Intercambia el contenido de los operandos origen y destino. No pueden utilizarse registros de segmentos como operandos.

XCHG CX, AXXCHG IVA, BX

2.1.1 Movimiento.

Intercambio.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 8: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

8

Nombre

Sintaxis Descripción Ejemplos

LEA LEA destino, origen

Transfiere el desplazamiento del operando fuente al operando destino.

LEA DX, IVA [SI]

2.1.1 Movimiento.

Carga dirección efectiva.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 9: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

9

Nombre

Sintaxis Descripción Ejemplos

LAHF LAHF

Carga los bits 7, 6, 4, 2 y 0 del registro AH con el contenido de los indicadores SF, ZF, AF, PF Y CF respectivamente. El contenido de los demás bits queda sin definir.

LAHF

2.1.1 Movimiento.

Carga AH con los indicadores.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 10: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

10

Nombre

Sintaxis Descripción Ejemplos

SAHF SAHF

Transfiere el contenido de los bits 7, 6, 4, 2 y 0 a los indicadores SF, ZF, AF, PF y CF respectivamente.

SAHF

2.1.1 Movimiento.

Carga el registro de estado con lo que tiene

AH.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - x x x x x

Page 11: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

11

2.1.1 Movimiento.

Practica 4:

Objetivo:

Comprobar el uso de las instrucciones de movimiento en lenguaje ensamblador.

Page 12: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

12

Nombre

Sintaxis Descripción Ejemplos

PUSH PUSH origen

Decrementa el puntero de pila (SP) en 2 y luego transfiere la palabra especificada en el operando origen a la cima de la pila

PUSH AXPUSH IVA PUSH CS

2.1.2 Pila.

Introduce en la pila.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 13: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

13

Nombre

Sintaxis Descripción Ejemplos

POP POP destino

Transfiere el elemento palabra que se encuentra en lo alto de la pila (apuntado por SP) al operando destino que a de ser tipo palabra, e incrementa en dos el registro SP.

POP AXPOP IVA PUSH CS

2.1.2 Pila.

Extrae de la pila.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 14: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

14

Nombre

Sintaxis Descripción Ejemplos

PUSHF PUSHF

Decrementa en dos el puntero de pila y traslada a la cima de la pila el contenido de los indicadores.

PUSHF

2.1.2 Pila.

Introduce el registro de estado en la pila.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 15: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

15

Nombre

Sintaxis Descripción Ejemplos

POPF POPF

Traslada al registro de los indicadores la palabra almacenada en la cima de la pila; a continuación el puntero de pila SP se incrementa en dos.

POPF

2.1.2 Pila.

Extrae el registro de estado de la pila.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x x x x x x x x x

Page 16: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

16

2.1.2 Pila.

Practica 6:

Objetivo:

Comprobar el uso de las instrucciones de manejo de la pila en lenguaje ensamblador.

Page 17: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

17

2.1.3 Matemáticos.

[ETIQUETA]

ADD / SUB

REGISTRO, REGISTRO

[ETIQUETA]

ADD / SUB

MEMORIA, REGISTRO

[ETIQUETA]

ADD / SUB

REGISTRO, MEMORIA

[ETIQUETA]

ADD / SUB

REGISTRO, INMEDIATO

[ETIQUETA]

ADD / SUB

MEMORIA, INMEDIATO

Las instrucciones ADD y SUB realizan sumas y restas sencillas de datos binarios. Los formatos generales para las instrucciones ADD y SUB son:

Page 18: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

18

Nombre

Sintaxis Descripción Ejemplos

ADD ADD destino, origen

Suma los operandos origen y destino almacenando el resultado en el operando destino.

ADD AX,10HADD BX, IVA

2.1.3 Matemáticos.

Suma.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - x x x x x

Page 19: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

19

Nombre

Sintaxis Descripción Ejemplos

ADC ADC destino, origen

Suma los operandos origen, destino y el valor del indicador de acarreo (0 ó 1) y el resultado lo almacena en el operando destino.

ADC AX, BX

2.1.3 Matemáticos.

Suma con acarreo.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - x x x x x

Page 20: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

20

Nombre

Sintaxis Descripción Ejemplos

INC INC destino

 Incrementa el operando destino. El operando destino puede ser byte o palabra.

INC ALINC IVA

2.1.3 Matemáticos.

Incremento.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - x x x x -

Page 21: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

21

Nombre

Sintaxis Descripción Ejemplos

SUB SUB destino, origen

Resta el operando destino al operando origen, colocando el resultado en el operando destino. Los operandos pueden tener o no signo, siendo necesario que sean del mismo tipo, byte o palabra.

SUB AX, BXSUB IVA, AX

2.1.3 Matemáticos.

Resta.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - x x x x x

Page 22: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

22

Nombre

Sintaxis Descripción Ejemplos

DEC DEC destino

 Resta una unidad del operando destino. El operando puede ser byte o palabra.

DEC ALDEC IVA

2.1.3 Matemáticos.

Decremento.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - x x x x -

Page 23: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

23

Nombre

Sintaxis Descripción Ejemplos

MUL MUL origenMultiplica el contenido sin signo del acumulador por el operando origen.

MUL BXMUL CL

2.1.3 Matemáticos.

Multiplicación sin signo.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - ? ? ? ? x

Page 24: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

24

Nombre

Sintaxis Descripción Ejemplos

DIV DIV origen

Divide, sin considerar el signo, un número contenido en el acumulador y su extensión (AH, AL si el operando es de tipo byte o DX, AX si el operando es palabra) entre el operando fuente. El cociente se guarda en AL o AX y el resto en AH o DX según el operando sea byte o palabra respectivamente.

DIV BXDIV CL

2.1.3 Matemáticos.

División sin signo.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

? - - - ? ? ? ? ?

Page 25: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

25

2.1.3 Matemáticos.

Practica 6:

Objetivo:

Comprobar el uso de las instrucciones aritméticas en lenguaje ensamblador.

Page 26: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

26

Nombre

Sintaxis Descripción Ejemplos

AAA AAA

Convierte el contenido del registro AL en un número BCD no empaquetado. Si los cuatro bits menos significativos de AL son mayores que 9 ó si el indicador AF está a 1, se suma 6 a AL, 1 a AH, AF se pone a 1, CF se iguala a AF y AL pone sus cuatro bits más significativos a 0.

ADD AL, BLAAA

2.1.4 Ajustes.

Ajuste ASCII después de sumar.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

? - - - ? ? x ? x

Page 27: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

27

Nombre

Sintaxis

Descripción Ejemplos

DAA DAA

Convierte el contenido del registro AL en un par de valores BCD: si los cuatro bits menos significativos de AL son un número mayor que 9, el indicador AF se pone a 1 y se suma 6 a AL. De igual forma, si los cuatro bits más significativos de AL tras la operación anterior son un número mayor que 9, el indicador CF se pone a 1 y se suma 60h a AL

ADD AL, CLDAA

2.1.4 Ajustes.

Ajuste decimal para la suma.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

? - - - x x x x x

Page 28: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

28

2.1.4 Ajustes.

Practica 7:

Objetivo:

Comprobar el uso de las instrucciones para ajustes en lenguaje ensamblador.

Page 29: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

29

Nombre

Sintaxis Descripción Ejemplos

CMP CMP destino, origen

Es utilizada para comparar dos campos de datos, uno de los cuales están contenidos en un registro.

CMP AL, CLCMP AX, IVA

2.1.5 Comparación.

Comparación.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - x x x x x

Page 30: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

30

2.2 Saltos.

El lenguaje ensamblador proporciona un conjunto de instrucciones conocidas como instrucciones de salto. Estas instrucciones son utilizadas en conjunto con instrucciones de comparación y prueba para determinar el flujo del programa.Existen dos tipos de instrucciones de salto: las instrucciones de salto incondicional y las de salto condicional.

Page 31: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

31

Nombre

Sintaxis Descripción Ejemplos

CALL CALL destino

Transfiere el control del programa a un procedimiento, salvando previamente en la pila la dirección de la instrucción siguiente, para poder volver a ella una vez ejecutado el procedimiento.

CALL proc1

2.2.1 Incondicional.

Llamada a subrutina.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 32: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

32

Nombre

Sintaxis Descripción Ejemplos

RET RET

Retorna de un procedimiento extrayendo de la pila la dirección de la siguiente dirección.

RET

2.2.1 Incondicional.

Retorno de subrutina.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 33: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

33

2.2.1 Incondicional.

Las instrucciones CALL y RET las vamos a practicar en la siguiente unidad cuando veamos macros y procedimientos, por el momento solo vamos a conocerlos y a entender su descripción.

Page 34: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

34

Nombre

Sintaxis Descripción Ejemplos

JMP JMP dirección

Permiten cambiar el flujo del programa sin verificar si se cumplió alguna condición.

MOV AX,10JMP otro

......

......otro:

......

......

2.2.1 Incondicional.

Salto.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 35: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

35

2.2.1 Incondicional.

Practica 8:

Objetivo:

Comprobar el uso de las instrucciones para saltos incondicionales en lenguaje ensamblador.

Page 36: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

36

2.2.2 Condicional.

Las instrucciones de salto condicional, revisan si se cumple cierta condición para poder transferir el control del programa a otra sección.

CMP AX,0JE otro ...... ......otro: ...... ......END

Ejemplo:

Page 37: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

37

2.2.2 Condicional.

JA/JNBE Salto si mayor, si no menor o igual, si CF=0 y ZF=0. + JAE/JNB Salto si mayor o igual, si no menor, si CF=0. + JB/JNAE/JC Salto si menor, si no superior ni igual, si acarreo, si CF=1. + JBE/JNA Salto si menor o igual, si no mayor, si CF=1 ó ZF=1. + JCXZ Salto si CX=0. JE/JZ Salto si igual, si cero, si ZF=1. JG/JNLE Salto si mayor, si no menor ni igual, si ZF=0 y SF=0. ± JGE/JNL Salto si mayor o igual, si no menor, si SF=0. ± JL/JNGE Salto si menor, si no mayor ni igual, si SF<>OF. ± JLE/JNG Salto si menor o igual, si no mayor, si ZF=0 y SF<>OF. ± JNC Salto si no acarreo, si CF=0. JNE/JNZ Salto si no igual, si no cero, si ZF=0. JNO Salto si no desbordamiento, si OF=0. JNP/JPO Salto si no paridad, si paridad impar, si PF=0. JNS Salto si no signo, si positivo, si SF=0. JO Salto si desbordamiento, si OF=1. JP/JPE Salto si paridad, si paridad par, si PF=1. JS Salto si signo, si SF=1.

Page 38: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

38

2.2.2 Condicional.

Practica 9:

Objetivo:

Comprobar el uso de las instrucciones para saltos condicionales en lenguaje ensamblador.

Page 39: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

39

Nombre

Sintaxis Descripción Ejemplos

LOOP LOOP desplazamiento

Decrementa el registro contador CX; si CX es cero, ejecuta la siguiente instrucción, en caso contrario transfiere el control a la dirección resultante de sumar a IP + desplazamiento

MOV CX,10otro: ...... ...... LOOP otro

2.3 Tipos de ciclos.

Bucle.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 40: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

40

2.3 Tipos de ciclos.

Practica 10:

Objetivo:

Comprobar el uso de las instrucciones para ciclos en lenguaje ensamblador.

Page 41: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

41

Nombre

Sintaxis Descripción Ejemplos

AND AND destino, origen

Realiza una operación de Y lógico entre el operando origen y destino quedando el resultado en el destino. Son válidos operandos byte o palabra, pero ambos del mismo tipo.

AND AX, BX

2.4 Operadores Lógicos.

Y lógico.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

0 - - - x x ? x 0

Page 42: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

42

Nombre

Sintaxis Descripción Ejemplos

OR OR destino, origen

Realiza una operación O lógico a nivel de bits entre los dos operandos, almacenándose después el resultado en el operando destino.

OR AX, BX

2.4 Operadores Lógicos.

O lógico.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

0 - - - x x ? x 0

Page 43: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

43

Nombre

Sintaxis Descripción Ejemplos

NOT NOT destino

Realiza el complemento a uno del operando destino, invirtiendo cada uno de sus bits. Los indicadores no resultan afectados.

NOT AX

2.4 Operadores Lógicos.

NO lógico.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 44: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

44

Nombre

Sintaxis Descripción Ejemplos

XOR XOR destino, origen

Operación OR exclusivo a nivel de bits entre los operandos origen y destino almacenándose el resultado en este último.

XOR AX, BX

2.4 Operadores Lógicos.

O Exclusivo.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

0 - - - x x ? x 0

Page 45: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

45

2.4 Operadores Lógicos.

Practica 11:

Objetivo:

Comprobar el uso de operadores lógicos en lenguaje ensamblador.

Page 46: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

46

2.5 Desplazamiento.

El lenguaje ensamblador proporciona un conjunto de instrucciones conocidas como de desplazamiento y rotación. Estas instrucciones se caracterizan por desplazar o rotar el operando bit a bit a la derecha o a la izquierda. El operando destino, que es el afectado por el desplazamiento o por la rotación siempre será un registro de datos.

Page 47: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

47

Nombre

Sintaxis Descripción Ejemplos

SAL/SHL

SAL/SHL destino, contador

Desplaza a la izquierda los bits del operando el número de bits especificado en el segundo operando que debe ser CL si es mayor que 1 los bits desplazados.

MOV CL, 02HSAL AX, CL

2.5.1 Lineal.

desplazamiento aritmético a la izquierda.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - x x ? x x

Page 48: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

48

Nombre

Sintaxis Descripción Ejemplos

SAR SAR destino, contador

Desplaza a la derecha los bits del operando destino el número de bits especificado en el segundo operando. Los bits de la izquierda se rellenan con el bit de signo del primer operando. Si el número de bits a desplazar es 1 se puede especificar directamente, si es mayor se especifica a través de CL.

SAR AX, CLSAR BX,01H

2.5.1 Lineal.

desplazamiento aritmético a la derecha.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - x x ? x x

Page 49: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

49

Nombre

Sintaxis Descripción Ejemplos

SHR SHR destino, contador

Desplaza a la derecha los bits del operando destino el número de los bits especificados en el segundo operando. Los bits de la izquierda se llena con cero. Si el número de bits a desplazar es 1 se puede especificar directamente en el caso en que no ocurra se pone el valor en CL.

SHR BX, 01HSHR AX, CL

2.5.1 Lineal.

desplazamiento lógico a la derecha.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - x x ? x x

Page 50: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

50

Nombre

Sintaxis Descripción Ejemplos

RCL RCL destino, contador

Rotar a la izquierda los bits del operando destino junto con el indicador de acarreo CF el número de bits especificado en el segundo operando. Si el número de bits a desplazar es 1, se puede especificar directamente, en caso contrario el valor debe cargarse en CL y especificar CL como segundo operando.

RCL BX, 01HRCL AX, CL

2.5.2 Circular.

rotación a la izquierda con acarreo.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - - - - - x

Page 51: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

51

Nombre

Sintaxis Descripción Ejemplos

RCR RCR destino, contador

Rotar a la derecha los bits del operando destino junto con el indicador de acarreo CF el número de bits especificado en el segundo operando. Si el número de bits es 1 se puede especificar directamente; en caso contrario su valor debe cargarse en CL y especificar CL como segundo operando.

RCR BX, 01HRCR AX, CL

2.5.2 Circular.

rotación a la derecha con acarreo.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - - - - - x

Page 52: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

52

Nombre

Sintaxis Descripción Ejemplos

ROL ROL destino, contador

Rota a la izquierda los bits del operando destino el número de bits especificado en el segundo operando, que puede ser 1 ó CL previamente cargado con el valor del número de veces.

ROL BX, 01HROL AX, CL

2.5.2 Circular.

rotación a la izquierda.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - - - - - x

Page 53: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

53

Nombre

Sintaxis Descripción Ejemplos

ROR ROR destino, contador

Rota a la derecha los bits del operando destino el número de bits especificado en el segundo operando. Si el número de bits es 1 se puede poner directamente, en caso contrario debe ponerse a través de CL.

ROR BX, 01HROR AX, CL

2.5.2 Circular.

rotación a la derecha.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - - - - - x

Page 54: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

54

2.5 Desplazamiento.

Practica 12:

Objetivo:

Comprobar el uso de operadores lógicos en lenguaje ensamblador.

Page 55: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

55

2.6 Procesos de control.

Page 56: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

56

Nombre

Sintaxis Descripción Ejemplos

CLC CLC Borra el indicador de acarreo (CF) sin afectar a ninguno otro. CLC

2.6.1 Banderas.

baja el indicador de acarreo.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - 0

Page 57: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

57

Nombre

Sintaxis Descripción Ejemplos

CLD CLD

Pone a 0 el indicador de dirección DF, por lo que los registros SI y/o DI se autoincrementan en las operaciones de cadenas, sin afectar al resto de los indicadores. Es NECESARIO colocarlo antes de las instrucciones de manejo de cadenas si no se conoce con seguridad el valor de DF.

CLD

2.6.1 Banderas.

baja el indicador de dirección.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- 0 - - - - - - -

Page 58: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

58

Nombre

Sintaxis Descripción Ejemplos

CLI CLI

Borra el indicador de activación de interrupciones IF, lo que desactiva las interrupciones enmascarables. Generalmente las interrupciones sólo se inhiben por breves instantes en momentos críticos.

CLI

2.6.1 Banderas.

baja indicador de interrupción.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - 0 - - - - - -

Page 59: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

59

Nombre

Sintaxis Descripción Ejemplos

CMC CMC Complementa el indicador de acarreo CF invirtiendo su estado. CMC

2.6.1 Banderas.

complementa el indicador de acarreo.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - x

Page 60: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

60

Nombre

Sintaxis Descripción Ejemplos

STC STCPone a 1 el indicador de acarreo CF sin afectar a ningún otro indicador.

STC

2.6.1 Banderas.

pone a uno el indicador de acarreo

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - 1

Page 61: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

61

Nombre

Sintaxis Descripción Ejemplos

STD STD

Pone a 1 el indicador de dirección DF, por lo que los registros SI y/o DI se auto decrementan en las operaciones de cadenas, sin afectar al resto de los indicadores. Es NECESARIO colocarlo antes de las instrucciones de manejo de cadenas si no se conoce con seguridad el estado de DF.

STD

2.6.1 Banderas.

pone a uno el indicador de dirección.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- 1 - - - - - - -

Page 62: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

62

Nombre

Sintaxis Descripción Ejemplos

STI STI

Pone a 1 la bandera de desactivación de interrupciones IF y activa las interrupciones enmascarables. Una interrupción pendiente no es reconocida, sin embargo, hasta después de ejecutar la instrucción que sigue a STI.

STI

2.6.1 Banderas.

pone a uno el indicador de interrupción.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - 1 - - - - - -

Page 63: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

63

2.6.1 Banderas.

Overflow NV = no hay desbordamiento; OV = sí lo hay

Direction UP = hacia adelante; DN = hacia atrás

Interrupts DI = desactivadas; EI = activadas

Sign PL = positivo; NG = negativo

Zero NZ = no es cero; ZR = sí lo es

Auxiliary Carry NA = no hay acarreo auxiliar; AC = hay acarreo auxiliar

Parity PO = paridad non; PE = paridad par

Carry NC = no hay acarreo; CY = Sí lo hay Registro de Estado

OF DF IF TF SF ZF AF PF CF

Page 64: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

64

Nombre

Sintaxis Descripción Ejemplos

CMPSCMPSBCMPSW

CMPS     cad_destino, cad_origenCMPSB     (bytes) CMPSW     (palabras)

Compara dos cadenas restando al origen el destino. Ninguno de los operandos se alteran, pero los indicadores resultan afectados.

LEA SI,origen LEA DI,destino CMPSB

2.6.2 Cadenas.

compara cadenas.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - x x x x x

Page 65: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

65

Nombre

Sintaxis Descripción Ejemplos

MOVSMOVSBMOVSW

MOVS     cad_destino, cad_origenMOVSB     (bytes) MOVSW     (palabras)

Transfiere un byte o una palabra de la cadena origen direccionada por DS:SI a la cadena destino direccionada por ES:DI.

LEA SI,origen LEA DI,destino MOVSB

2.6.2 Cadenas.

mover cadena.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 66: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

66

Nombre

Sintaxis Descripción Ejemplos

SCASSCASBSCASW

SCAS     cad_destinoSCASB     (bytes) SCASW     (palabras)

Resta de AX o AL una cadena destino direccionada por el registro DI sobre el segmento extra. Ninguno de los valores es alterado pero los indicadores se ven afectados.

LEA DI,destinoMOV AL, 50HSCASB

2.6.2 Cadenas.

explorar cadena.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

x - - - x x x x x

Page 67: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

67

Nombre

Sintaxis Descripción Ejemplos

STOSSTOSBSTOSW

STOS     cad_destinoSTOSB     (bytes) STOSW     (palabras)

Transfiere el operando origen almacenado en AX o AL, al destino direccionado por el registro DI sobre el segmento extra.

LEA DI,destinoMOV AX, 1991STOSW

2.6.2 Cadenas.

almacena cadena.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 68: Elementos Del Lenguaje

Ing. Saúl Román Barraza.

68

Nombre

Sintaxis Descripción Ejemplos

LODSLODSBLODSW

LODS     cad_origenLODSB     (bytes) LODSW     (palabras)

 Copia en AL o AX una cadena de longitud byte o palabra direccionada sobre el segmento de datos (DS) con el registro SI.

CLD LEA SI, origenLODSB

2.6.3 Carga.

cargar cadena.

Registro de Estado

OF DF IF TF SF ZF AF PF CF

- - - - - - - - -

Page 69: Elementos Del Lenguaje

Ing. Saúl Román Barraza. 69

fin