Lenguaje de emsanble

458 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
458
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lenguaje de emsanble

  1. 1. INVESTIGA 3 INSTRUCCIONES EN LENGUAJE ENSAMBLADOR Y DAME LOS EJEMPLOS Y SOBRE TODO LA DESCRIPCION QUE REALIZA CADA INSTRUCCION<br />
  2. 2. EL LENGUAJE ENSAMBLADOR<br /> 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.<br />
  3. 3. Instruccion de lenguaje de emsanblador<br />Ejemplo 1<br />INSTRUCCIÓN: ACALL<br />FUNSION: LLAMADA ABSOLUTA DENTRO DE UN BLOQUE DE 2 K<br />SINTAXIS: ACALL dir_11<br />INSTRUCCIÓN: ACALL dir_11.<br />CODIGO DE OPERACIÓN: a10 a9 a8 10000<br />2 byte : dir 7-0<br />BYTES: 2<br />CICLOS: 2<br />FLAGS: -<br />OPERACIÓN: ACALL<br />(PC) <= (PC) + 2 (SP) <= (SP) + 1 ((SP)) <= (PC7-0) (SP)<= (SP) + 1 ((SP)) <= (PC15-8) (PC10-0) <= dir_11<br />
  4. 4. 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.<br /> 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.<br /> 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.<br />
  5. 5. EJEMPLO 2:INSTRUCCIÓN: ADD<br />FUNCIÓN: SUMA EL OPERANDO IMPLICADO AL ACC Y DEJA EL RESULTADO EN ACC<br />SINTAXIS: ADD A,OPERANDO<br />INSTRUCCIÓN:ADD A,RN<br />CÓDIGO DE OPERACIÓN:0 0 1 0 1 R RR<br />2º BYTE: -<br />BYTES:1<br />CICLOS: 1<br />FLAGS: C-AC-OV<br />OPERACIÓN: ADD A,OPERANDO<br />(A)<= (A) + OPERANDO<br />
  6. 6. DESCRIPCIÓN: ADD SUMA EL VALOR DEL OPERANDO AL VALOR DEL ACUMULADOR, Y DEJA EL RESULTADO EN EL ACUMULADOR. EL VALOR DEL OPERANDO NO RESULTA AFECTADO.<br /> 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.<br /> 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.<br /> 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 FLAG OV 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.<br />
  7. 7. EJEMPLO 3<br /> Instrucción:ADDC<br /> Función: Suma el operando implicado, el bit de acarreo y el ACC y deja el resultado en ACC Sintaxis: ADDC A,operando<br />INSTRUCCIÓN:ADDC A,Rn<br /> CODIGO DE OPERACIÓN:0 0 1 1 1 r rr<br />2 byte :-<br />BYTES: 1<br />CICLOS: 1<br />FLAGS: C-AC-OV<br />
  8. 8. Operación: ADDC A,operando<br /> (A)<= (A) + (C) + operando<br /> Descripció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.<br /> 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. <br /> 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.<br /> 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 flag OV 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.<br />
  9. 9. que son los codigos de operacionnmotecnicos<br /> 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.<br /> EJEMPLO: SI DS CONTIENE 0X000A Y DX CONTIENE 0X5F0A, APUNTARÍAN A LA DIRECCIÓN DE MEMORIA: 0X000A * 0X10 + 0X5F0A = 0X5FAA<br />
  10. 10. ENVIA UN EJEMPLO PRACTICO DE CASO FETC EXPLICADO<br />Fetchde Operando <br />Realiza la búsqueda de un operando en memoria, si es necesario. Generalmente es <br /> la misma instrucción quien proporciona la dirección del operando al procesador. <br /> Ejecución de la Operación <br /> 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. <br />
  11. 11.
  12. 12. FECH<br />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.<br />SU SINTAXIS ES:<br />FETCH NOMBRE-CURSOR INTO {:VARIABLE-HOST},...<br />
  13. 13. tiene restricciones, y son las siguientes:<br /> 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).<br /> Los datos soportados por el lenguaje deben ser compatibles con los de las variables devueltas.<br /> Al especificar un número distinto de variables de las definidas, el programa devolverá un aviso..<br /> Al llegar al final de la tabla lógica referenciada por el cursor, las variables del lenguaje no varían.<br /> 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.<br />
  14. 14. FETCH nombre-cursor USING DESCRIPTOR :variable-host<br />

×