lenguaje de emsanble

14

Click here to load reader

Upload: gearsofwarfederico

Post on 12-Jul-2015

313 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lenguaje de emsanble

INVESTIGA 3 INSTRUCCIONES ENLENGUAJE ENSAMBLADOR YDAME LOS EJEMPLOS Y SOBRETODO LA DESCRIPCION QUEREALIZA CADA INSTRUCCION

Page 2: Lenguaje de emsanble

EL LENGUAJE ENSAMBLADOR ( ASSENBLY LANGUAJE ) :ES UN LENGUAJE DE PROGRAMCION DE BAJO NIVEL PARA LOS COMPUTADORES ,MICROPROCESADORES, Y OTROS CIRCUITOS INTEGRADOS PROGRAMABLES. IMPLEMENTA UNA REPRESENTACIÓN SIMBÓLICA DE LOS CODIGOS DE MAQUINA BINARIOS Y OTRAS CONSTANTES NECESARIAS PARA PROGRAMAR UNA ARQUITECTURA DADA DE CPU Y CONSTITUYE LA REPRESENTACIÓN MÁS DIRECTA DEL CODIGO MAQUINA ESPECÍFICO PARA CADA ARQUITECTURA LEGIBLE POR UN PROGRAMADOR.

Page 3: Lenguaje de emsanble

Ejemplo 1INSTRUCCIÓN: ACALLFUNSION: LLAMADA ABSOLUTA DENTRO DE UN BLOQUE DE 2 KSINTAXIS: ACALL dir_11INSTRUCCIÓN: ACALL dir_11.CODIGO DE OPERACIÓN: a10 a9 a8 100002 byte : dir 7-0BYTES: 2CICLOS: 2FLAGS: -OPERACIÓN: ACALL(PC) <= (PC) + 2 (SP) <= (SP) + 1 ((SP)) <= (PC7-0) (SP)<= (SP) + 1 ((SP)) <= (PC15-8) (PC10-0) <= dir_11

Page 4: Lenguaje de emsanble

DESCRIPCIÓN: ACALL REALIZA UNA LLAMADA INCONDICIONAL A LA SUBRUTINA SITUADA EN LA DIRECCIÓN INDICADA. ACALL INCREMENTA EL PC (PROGRAM COUNTER) DOS VECES PARA OBTENER LA DIRECCIÓN DE LA SIGUIENTE INSTRUCCIÓN, LUEGO GUARDA DICHA DIRECCIÓN EN LA PILA (EL BYTE DE MENOR PESO EN PRIMER LUGAR). EN CONSECUENCIA EL APUNTADOR DE PILA (SP O STACK POINTER) INCREMENTA SU VALOR EN 2. POSTERIORMENTE EL CONTROL DEL PROGRAMA SE TRANSFIERE A LA DIRECCIÓN INDICADA EN LA INSTRUCCIÓN.LA DIRECCIÓN DE SALTO, O NUEVO VALOR PARA EL PC SE OBTIENE UNIENDO A LOS 5 BITS DE MAYOR PESO DEL PC YA INCREMENTADO, LOS BITS 7-5 DEL CÓDIGO DE OPERACIÓN Y EL SEGUNDO BYTE DE LA INSTRUCCIÓN.COMO LA INSTRUCCIÓN ACALL SÓLO AFECTA A LOS 11 BITS DE MENOR PESO DEL PC, LA LLAMADA SIEMPRE SE PRODUCE A UNA DIRECCIÓN DE MEMORIA DE CÓDIGO SITUADA DENTRO DEL BLOQUE DE 2 K AL QUE PERTENECE EL PRIMER BYTE DE LA INSTRUCCIÓN QUE SIGUE AL ACALL.

Page 5: Lenguaje de emsanble

FUNCIÓN: SUMA EL OPERANDO IMPLICADO AL ACC Y DEJA EL RESULTADO EN ACC

SINTAXIS: ADD A,OPERANDO

INSTRUCCIÓN:ADD A,RN

CÓDIGO DE OPERACIÓN:0 0 1 0 1 R R R

2º BYTE: -

BYTES:1

CICLOS: 1

FLAGS: C-AC-OV

OPERACIÓN: ADD A,OPERANDO

(A)<= (A) + OPERANDO

Page 6: Lenguaje de emsanble

DESCRIPCIÓN: ADD SUMA EL VALOR DEL OPERANDO ALVALOR DEL ACUMULADOR, Y DEJA EL RESULTADO EN ELACUMULADOR. EL VALOR DEL OPERANDO NO RESULTAAFECTADO.

EL BIT DE ACARREO (C) SE PONE A UNO SI HAY LLEVADADESDE EL BIT 7. ES DECIR, SI EL RESULTADO DE LA SUMAPASA DE 255. EN CASO CONTRARIO EL BIT C SE PONE ACERO.

EL BIT DE ACARREO AUXILIAR (AC) SE PONE A UNO SI HAYLLEVADA DESDE EL BIT 3. ES DECIR SI EL NIBBLE BAJO DELRESULTADO PASA DE 15. EN CASO CONTRARIO EL BIT ACSE PONE A CERO.

EL BIT DE REBASAMIENTO (OV) SE PONE A UNO SI HAYLLEVADA DESDE EL BIT 6, O DESDE EL BIT 7, PERO NO DEAMBOS. EN CASO CONTRARIO SE PONE A CERO. EN OTRASPALABRAS, SI AL SUMAR DOS NÚMEROS ENTEROS, ELFLAG OV TOMA VALOR 1, ELLO SIGNIFICA QUE ELRESULTADO SE ENCUENTRA FUERA DEL RANGO DE LOSENTEROS DE 8 BITS, QUE VA DESDE -128 HASTA +127.

Page 7: Lenguaje de emsanble

Instrucción: ADDC

Función: Suma el operando implicado, el bit de acarreo y el ACC y deja el resultado en ACC Sintaxis: ADDC A,operando

INSTRUCCIÓN:ADDC A,Rn

CODIGO DE OPERACIÓN:0 0 1 1 1 r r r

2 byte :-

BYTES: 1

CICLOS: 1

FLAGS: C-AC-OV

Page 8: Lenguaje de emsanble

Operación: ADDC A,operando(A)<= (A) + (C) + operandoDescripción: ADDC suma el valor del operando, el bit de acarreo C, y el valor del Acumulador, y deja el resultado en el Acumulador. El valor del operando no resulta afectado.El bit de acarreo (C) se pone a uno si hay llevada desde el bit 7. Es decir, si el resultado de la suma pasa de 255. En caso contrario el bit C se pone a cero. El bit de acarreo auxiliar (AC) se pone a uno si hay llevada desde el bit 3. Es decir si el nibble bajo del resultado pasa de 15. En caso contrario el bit AC se pone a cero.El bit de rebasamiento (OV) se pone a uno si hay llevada desde el bit 6, o desde el bit 7, pero no de ambos. En caso contrario se pone a cero. En otras palabras, si al sumar dos números enteros, el flagOV toma valor 1, ello significa que el resultado se encuentra fuera del rango de los enteros de 8 bits, que va desde -128 hasta +127.

Page 9: Lenguaje de emsanble

EL LENGUAJE ENSAMBLADOR X86 ES LA FAMILIA DE LOS LENGUAJES ENSAMBLADORES PARA LOS PROCESADORES DE LA FAMILIA X86 , QUE INCLUYE DESDE LOS PROCESADORES INTEL 8086 Y 8088 PASANDO POR LOS PENTIUM DE INTEL Y LOS ATHLON DE AMD Y LLEGANDO HASTA LOS ÚLTIMOS PROCESADORES X86 DE ESTAS COMPAÑÍAS.

EJEMPLO: SI DS CONTIENE 0X000A Y DX CONTIENE 0X5F0A, APUNTARÍAN A LA DIRECCIÓN DE MEMORIA: 0X000A * 0X10 + 0X5F0A = 0X5FAA

Page 10: Lenguaje de emsanble

ENVIA UN EJEMPLO PRACTICO DE CASO FETC EXPLICADO

Fetch de Operando Realiza la búsqueda de un operando en memoria, si es necesario. Generalmente es

la misma instrucción quien proporciona la dirección del operando al procesador.

Ejecución de la Operación

Una vez conocida la naturaleza de la instrucción, y el operando ha sido extraído desde memoria, el procesador ejecuta la operación indicada por el código contenida en la instrucción.

Page 11: Lenguaje de emsanble
Page 12: Lenguaje de emsanble

FETCH: ASIGNA A LA LISTA DE VARIABLES DEL LENGUAJE QUE SOPORTA AL SQL LOS VALORES DE LA FILA SIGUIENTE DEL CURSOR DECLARADO. CUANDO SE EJECUTE, EL CURSOR DEBE ESTAR ABIERTO.

SU SINTAXIS ES:

FETCH NOMBRE-CURSOR INTO {:VARIABLE-HOST},...

Page 13: Lenguaje de emsanble

tiene restricciones, y son las siguientes:

La sentencia de filas devueltas, a menos que se halla usado un ORDER BY en la declaración del cursor, queda indefinida (en la mayoría de implementaciones).

Los datos soportados por el lenguaje deben ser compatibles con los de las variables devueltas.

Al especificar un número distinto de variables de las definidas, el programa devolverá un aviso..

Al llegar al final de la tabla lógica referenciada por el cursor, las variables del lenguaje no varían.

Si se produce un error que lleve a valores no válidos o que haga que la posición del cursor sea impredecible, el cursor se cierra automáticamente.

Page 14: Lenguaje de emsanble

FETCH nombre-cursor USING DESCRIPTOR :variable-host