Upload
saulrb329497
View
226
Download
11
Embed Size (px)
Citation preview
Ing. Saúl Román Barraza.
1
II. ELEMENTOS DEL LENGUAJE
Lenguaje Ensamblador
Ing. Saúl Román Barraza.
2
CONOCERÁ Y APLICARÁ LA SINTAXIS DEL LENGUAJE ENSAMBLADOR PARA MANIPULAR EL EQUIPO DE COMPUTO.
Objetivo
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.
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.
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
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
- - - - - - - - -
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
- - - - - - - - -
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
- - - - - - - - -
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
- - - - - - - - -
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
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.
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
- - - - - - - - -
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
- - - - - - - - -
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
- - - - - - - - -
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
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.
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:
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
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
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 -
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
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 -
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
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
? - - - ? ? ? ? ?
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.
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
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
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.
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
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.
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
- - - - - - - - -
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
- - - - - - - - -
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.
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
- - - - - - - - -
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.
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:
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.
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.
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
- - - - - - - - -
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.
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
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
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
- - - - - - - - -
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
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.
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.
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
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
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
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
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
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
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
Ing. Saúl Román Barraza.
54
2.5 Desplazamiento.
Practica 12:
Objetivo:
Comprobar el uso de operadores lógicos en lenguaje ensamblador.
Ing. Saúl Román Barraza.
55
2.6 Procesos de control.
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
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 - - - - - - -
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 - - - - - -
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
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
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 - - - - - - -
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 - - - - - -
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
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
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
- - - - - - - - -
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
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
- - - - - - - - -
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
- - - - - - - - -
Ing. Saúl Román Barraza. 69
fin