ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 1/32 14-DIRECTIVAS

Tamaño: px
Comenzar la demostración a partir de la página:

Download "ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 1/32 14-DIRECTIVAS"

Transcripción

1 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 1/32 14-DIRECTIVAS 14.1 INTRODUCCIÓN: Las directivas o pseudooperaciones se pueden dividir en cuatro grupos funcionales:! Directivas de datos.! Directivas condicionales.! Directivas de listado.! Directivas de macros DIRECTIVAS DE DATOS: A su vez se dividen en seis categorías_! Definición de símbolos: Sirven para asignar nombres simbólicos a expresiones! EQU = Asigna un símbolo a una expresión fija.! = = Asigna un símbolo a una expresión variable.! Definición de datos: Sirven para reservar memoria para las variables del programa. Opcionalmente se puede dar un valor inicial a cada variable.! DB = Definir byte.! DW = Definir palabra.! DD = Definir doble palabra.! DQ = Definir cuádruple palabra.! DT = Definir 10 bytes.! Referencias Externas: Hacen referencia a información que se encuentra en módulos o ficheros distintos.! PUBLIC = Definir símbolo público.! EXTRN = Definir símbolo externo! INCLUDE = Incluir fichero fuente.

2 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 2/32! Control del ensamblador:! END = Fin del módulo fuente.! ORIGIN = Origen de código o datos! EVEN= Poner contador de posiciones en número par.!.radix = Base de numeración por defecto.! Definición de segmentos y procedimientos:! SEGMENT = Comienzo de segmento.! ENDS = Fin de segmento o de estructura.! ASSUME = Suponer registro de segmento.! PROC = Comienzo de procedimiento.! ENDP = Fin de procedimiento.! Definición de bloques:! GROUP = Agrupar segmentos.! NAME = Nombre de un módulo.! LABEL = Asigna un atributo a un nombre.! RECORD = Definir registro.! STRUC = Definir estructura DIRECTIVAS CONDICIONALES: Sirve para que el ensamblador ejecute ciertos grupos de instrucciones según una condición sea cierta o falsa. Estas directivas son del tipo Ifxxx else endif con la siguiente estructura: IF [condición] ELSE ENDIF

3 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 3/ DIRECTIVAS DE LISTADO: Indican al ensamblador la información a obtener en el listado de salida y el formato de esta información.! Formato de listado:! PAGE = Formato de la página de listado.! TITLE = Título del listado.! SUBTTL = Subtítulo de listado.! LISTADO DE MACROS:! LALL = Listar macros y expansiones.! SALL = Suprimir el listado de las macros y de las expansiones.! XALL = Listar sólo las macros que generan código objeto.! CONTROL DE LISTADO!.XCREF = Suprimir referencia cruzadas.!.cref = Restaurar listado de referencias cruzadas.!.xlist = Suprimir listado ensamblador.!.list = Restaurar listado ensamblador.! COMENTARIOS! COMMENT = Comentario.! MENSAJES! %OUT = Emitir mensaje durante el ensamblaje.! CONTROL DEL LISTADO DE LOS BLOQUES ASOCIADOS A UNA CONDICIÓN FALSA!.LFCOND = Listar bloques asociados a una condición falsa.!.sfcond = Suprimir el listado de los bloques asociados a una condición falsa!.tfcond = Invertir el modo de listado de los bloques asociados a una condición falsa.

4 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 4/ DIRECTIVAS DE MACROS: Una macro es un conjunto de sentencias ensamblador (directivas y/o instrucciones) que pueden aparecer varias veces en un programa con algunas modificaciones opcionales cada vez que se usan. Para evitar el tener que teclear estas repeticiones a la hora de programar, se definen las macros a las que se puede invocar desde el programa con diferentes valores para los parámetros. Esto sólo ocurre en tiempo de programación, porque al ensamblar el fichero, dichas macros se expanden dentro del código. A este proceso se le llama expansión de la macro y tiene lugar en todos los puntos del programa donde se utilice la macro, por ello se recomienda que el tamaño de estas macros sea pequeño. Las macros se definen mediante la directiva MACRO precedida del nombre de la macro y seguida por los nombres de los operandos que necesita separados por comas. En líneas sucesivas se colocarán las instrucciones de la macro, pudiéndose colocar como operandos de ellas los parámetros de la misma. Por último, el final de la macro se indicará con la directiva ENDM. Ejemplo. Supongamos que tenemos una macro así definida: Suma MACRO destino, fuente1,fuente2 MOV destino,op1 ADD destino,op1 ENDM

5 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 5/32 Si dentro de un programa llamamos a dicha macro: Mov Dato,4444h Mov AX,1234h Mov BX,5678h Suma CX,AX,BX Suma DX,CX,Dato Al ensamblar el programa quedará: Mov Dato,4444h Mov AX,1234h Mov BX,5678h Mov CX,AX ; 2 expansiones de la macro Add CX,BX MOV DX,CX ADD DX,Dato Puesto que las macros se expanden en todos los lugares en los que son utilizadas, no es posible utilizar en ellas etiquetas normales puesto que si se expandiese la etiqueta más de una vez, aparecería la etiqueta en varias partes del programa, produciéndose un error. La forma de solucionar este inconveniente es utilizando las etiquetas locales. Las cuales tienen vigencia únicamente dentro de la expansión de la macro, no existiendo fuera de ellas y permitiendo por tanto, su utilización repetida. Las etiquetas locales se definen mediante la directiva LOCAL, seguidas de los nombres de las etiquetas separados por comas

6 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 6/32 Las directivas de macros se dividen en dos categorías:! DEFINICIÓN DE MACROS! MACRO = Comienzo de macro.! ENDM = Fin de macro.! LOCAL = Define etiquetas dentro de una macro! EXITM = Terminar expansión de la macro.! PURGE = Borrar las macros de la memoria.! REPT = Repetir bloque de sentencias un número de veces.! IRP = Repetir bloque de sentencias con un valor cada vez.! IRPC = Repetir bloque de sentencias con un carácter cada vez.! OPERADORES DE MACROS! & = Operador que concatena textos o símbolos! ;; = Operador para comentarios que no aparecen en la expansión!! = Operador para interpretar carácter en sentido literal! % = Operador para convertir una expresión en un número DIRECTIVAS : Directiva &: Formato: texto&texto Descripción: Es un operador que se utiliza dentro de la definición de una macro para concatenar textos o símbolos. Observaciones:! Si se utiliza un parámetro de la macro dentro de una cadena de caracteres (entre comillas) debe ir precedido por el carácter &, para que sea sustituido en la expansión de la macro.! Para formar un símbolo a partir de un texto y un parámetro de la macro, es necesario interponer un & entre ellos. Ejemplo: Ejem1 MACRO X,cond Et1&X push BX Mov BX, &X J&cond et&x ENDM

7 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 7/32 Cuando en el programa coloquemos por ejemplo Ejem1 A,GE, al ensamblar la expansión quedará: Et1A push BX Mov BX, A JGE Et1A Directiva ;; Formato: ;; texto Descripción: Es un operador que se utiliza dentro de la definición de una macro para insertar comentarios que no se desea que aparezcan en la expansión incluso usando la directiva.lall. Observaciones: Los comentarios precedidos por un (;) aparecerán en la expansiones Directiva!: Formato:!Carácter Descripción: Es un operador que se utiliza dentro de la definición de una macro para indicar que el carácter que viene a continuación debe interpretarse de forma literal, y no como símbolo. Observaciones: Las entradas!x y <x> son equivalentes Ejemplo: Macro1 macro x Mov ax,x Macro2!x Endm Macro2 macro y Push Y Endm

8 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 8/ Directiva %: Formato: %Expresión Descripción: Es un operador de macro que sirve para convertir una expresión a un número en la base de numeración activa. Ejemplo Macro1 macro x Y = x+1 Macro2 %Y Endm Macro2 macro Y MOV BX, Y Endm Directiva COMMENT: Formato: COMMENT delimitador texto delimitador Descripción: Permite insertar comentarios en el programa sin tener que especificar ; en cada línea. El primer carácter no blanco actúa como delimitador inicial del comentario. El delimitador final es otro carácter igual al inicial. Un comment definido dentro del cuerpo de una macro no se lista, a menos que especifiquemos la directiva.lall Ejemplo COMMENT * esto es un comentario que puede ocupar varias líneas fin del comentario*

9 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 9/ Directiva.CREF/.XCREF: Formato:.CREF.XCREF Descripción:.XCREF suprime el listado de las referencias cruzadas hasta que encuentre un.cref.cref Restaura el listado de referencias cruzadas, esta opción es por defecto Observaciones: Las referencias cruzadas se utilizan como ayuda en la depuración de un programa. Consta de un listado de los símbolos y números de líneas donde es referenciado o definido Directiva DB: Formato: [nombre de variable] DB expresión Descripción: Reserva memoria para una variable de tipo byte (8 bits), inicializando o no dicho byte y los posteriores, nombre de variable es opcional y es el nombre asignado al primer byte Operandos: - Expresión es el valor inicial de la variable, y puede ser:! Una constante positiva o negativa o expresión de constantes! El rango de constantes con signo es:! 80h = -128 (mínimo)! 7Fh = 127 (máximo)! El rango de constantes con signo es:! 00h = 0 (mínimo)! FF! El signo? indica indefinición del valor! Una cadena de caracteres delimitada por comillas simples o dobles! N1 DUP(n2) indica que la expresión n2 se repite n1 veces, a su vez n2 puede tener otro u otros DUP.

10 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 10/32 Ejemplos:! ABC DB 23,35,48! DFR DB -125! SRGWR DB 0Dh! DB 3Eh,5Fh,31h! SDE DB 4 DUP(0),12*3! WFRG DB 4 DUP(3 DUP(7))! THECS DB ERROR,34,-15, b Directiva DD: Formato: [nombre de variable] DD expresión Descripción: Reserva memoria para una variable de tipo doble palabra (2 palabras = 4 bytes = 32 bits). Operandos: - Expresión es el valor inicial de la variable, y puede ser:! Una constante positiva o negativa o expresión de constantes! El rango de constantes con signo es:! h = (mínimo)! 7FFFFFFFh = (máximo)! El rango de constantes con signo es:! h = 0 (mínimo)! FFFFFFFFh = (máximo)! El signo? indica indefinición del valor! Una cadena de caracteres delimitada por comillas simples o dobles N1 DUP(n2) indica que la expresión n2 se repite n1 veces, a su vez n2 puede tener otro u otros DUP. Observaciones: El orden de almacenamiento de una doble palabra en memoria es el siguiente:! Primero las palabras menos significativas.! Segundo la palabra mas significativa.! A su vez cada palabra se almacena con el byte menos significativo en primer lugar! La doble palabra se almacenará como 58, 74, 68, 45.

11 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 11/ Directiva DQ: Formato: [nombre de variable] DQ expresión Descripción: Reserva memoria para una variable de tipo cuádruple palabra (4 palabras = 8 bytes = 64 bits). Operandos: - Expresión es el valor inicial de la variable, y puede ser:! Una constante positiva o negativa o expresión de constantes! El rango de constantes con signo es:! h = (mínimo)! 7FFFFFFFFFFFFFFh = (máximo)! El rango de constantes con signo es:! h = 0 (mínimo)! FFFFFFFFFFFFFFFFh = (máximo)! El signo? indica indefinición del valor! Una cadena de caracteres delimitada por comillas simples o dobles N1 DUP(n2) indica que la expresión n2 se repite n1 veces, a su vez n2 puede tener otro u otros DUP. Observaciones: El orden de almacenamiento de una doble palabra en memoria es el siguiente:! Primero la doble palabra menos significativas.! Segundo la doble palabra mas significativa.! A su vez cada doble palabra se almacena con la palabra menos significativa en primer lugar La doble palabra AFEBCD se almacenará como 54, 69, 23, 87, 45, CD, EB, AF.

12 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 12/ Directiva DT: Formato: [nombre de variable] DT expresión. Descripción: Reserva diez bytes de memoria para almacenar dígitos decimales empaquetados (dos dígitos decimales por byte). Ejemplo: Wuh DT ;reserva 10 bytes. Es equivalente a : Wuh DB 00h,4 DUP( ),01h,23h,45h,67h,89h Directiva DW: Formato: [nombre de variable] DW expresión. Descripción: Reserva diez bytes de memoria para una variable de tipo palabra Operandos: - Expresión es el valor inicial de la variable, y puede ser:! Una constante positiva o negativa o expresión de constantes! El rango de constantes con signo es:! 8000h = (mínimo)! 7FFFh = (máximo)! El rango de constantes con signo es:! 0000h = 0 (mínimo)! FFFFh = (máximo)! El signo? indica indefinición del valor! El desplazamiento offset de una variable.! Una cadena de caracteres delimitada por comillas simples o dobles N1 DUP(n2) indica que la expresión n2 se repite n1 veces, a su vez n2 puede tener otro u otros DUP. Observaciones: El orden de almacenamiento de una palabra en memoria es el siguiente:! Primero el byte menos significativo. (byte 0: bit del 0 al 7)! Segundo el byte mas significativo (byte 1 : bit del 8 al 15)

13 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 13/ Directiva END: Formato: END [expresión] Descripción: Indica el final del programa fuente. El operando expresión indica la dirección de comienzo del programa fuente. Normalmente se especifica una etiqueta Directiva ENDM: Formato: ENDM Descripción: Indica el final de una de las directivas siguientes: MACRO, REPT, IRP, IRPC Directiva ENDP: Formato: nombre_procedimiento ENDP [expresión] Descripción: Indica el final del procedimiento Directiva ENDS: Formato: nombre_segmento ENDS Nombre_estructura ENDS Descripción: Indica el final de un segmento o de una estructura Directiva EQU: Formato: nombre EQU expresión Descripción: Asigna un nombre simbólico al valor de una expresión. La expresión puede ser:! Una constante numérica.! Una referencia de dirección.! Cualquier combinación de símbolos y operaciones que pueda evaluarse como valor numérico.! Otro nombre simbólico.

14 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 14/32 Observaciones:! Al contrario de la directiva =, el nombre simbólico no puede redefinirse! EQU no puede utilizarse dentro de una estructura, es decir, entre las directivas STRUC y ENDS. Ejemplos: Columnas equ 80 Filas equ 25 Pantalla equ filas*columnas Mover equ mov Directiva EVEN: Formato: EVEN Descripción: Fuerza al contador de posiciones a un valor par, es decir, a una frontera de palabra. Si el contador de posiciones ya está en una posición par, la directiva EVEN no hace nada, en caso contrario Even añade una instrucción NOP que ocupa un byte. Con esta instrucción se asegura que el código o los datos que vienen detrás de esta sentencia están en una dirección de memoria par.

15 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 15/ Directiva EXITM: Formato: EXITM Descripción: Esta directiva se usa en el caso en que un bloque MACRO, REPT, IRP o IRPC, y que como consecuencia de una directiva condicional anterior se desee finalizar la expansión. Ejemplo: Por ejemplo deseamos hacer una macro que sume dos cantidades y deje su valor en AX en el caso de que la suma sea menor que 9 SUMA MACRO valor1,valor2 Mov AX,0000h if valor1+valor2 GT 9 exitm else mov AX,valor1 add AX,valor2 endif endm Esta macro realiza la función que hemos planteado, y ahora será llamada desde el código por ejemplo ejemplo PROC FAR suma 2,3 suma 7,8 ejemplo ENDP En tiempo de ensamblaje, la instrucción (suma 2,3) será expandida de la siguiente forma: Mov AX,0000h Mov AX,2 Add AX,3 Sin embargo la instrucción (suma 7,8) será expandida como: Mov AX,0000h

16 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 16/ Directiva IF Formato: IF [condición]... ELSE... ENDIF Descripción: Las directivas que comienzan por IF son directivas condicionales y sirven para que el ensamblador incluya o no las sentencias que vienen a continuación según se cumpla o no la condición. Si la condición es cierta, se incluyen las sentencias entre el IF y el ELSE, si la condición no es cierta, se incluyen las condiciones entre IF y ENDIF. El bloque ELSE es opcional, si no lo ponemos, se incluirá las sentencias entre IF y ENDIF en caso de cumplirse la condición planteada. La directiva IF se puede anidar, es decir, meter uno o varios IF dentro de otro IF Directiva = Formato: nombre = expresión Descripción: Asigna un nombre simbólico a una expresión. La expresión puede ser:! Una constante numérica.! Una referencia de dirección! Cualquier combinación de símbolos y operaciones que pueda evaluarse como valor numérico! Otro nombre simbólico. Observaciones: Esta directiva es similar a EQU, excepto que nombre puede redefinirse, es decir, puede cambiarse la expresión asociada al nombre. Ejemplos:! Valor = 10! Qwdf = Valor + 1! Wgfw = valor /Qwdf

17 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 17/ Directiva INCLUDE Formato: INCLUDE nombre_de_fichero Descripción: Incluye un fichero de sentencias fuente, este fichero es el indicado en nombre_de_fichero Ejemplo Podemos crear por ejemplo un fichero para guardar los registros AX,BX,CX,DX en la pila y por ejemplo lo llamaremos guarda.asm con el contenido: PUSH AX PUSH BX PUSH CX PUSH DX Y ahora al hacer un programa, si queremos añadir esta secuencia lo haremos de la siguiente forma: Include guarda.asm Directiva IRP Formato: IRP nombre,<lista de argumentos> Descripción: Hace que el bloque de sentencias contenidas entre IRP y ENDM se repita una vez para cada argumento, sustituyendo nombre por el correspondiente argumento Observaciones:! La lista de argumentos debe delimitarse entre los símbolos < y >.! Los argumentos se separan por comas.! Si la lista de argumentos es nula (<>), el bloque de sentencias se ejecuta una vez eliminando nombre.! El bloque IRP-ENDM no es necesario que resida dentro de una definición de macro Ejemplo: IRP valor,<1,2,3> ADD AX,valor... Endm

18 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 18/32 En este ejemplo se repetiran las instrucciones entre IRP y endm una vez para valor=1, otra vez para valor=2 y otra vez para valor = 3, y el ensamblador generará ADD AX,1 ADD AX,2 ADD AX, Directiva IRPC: Formato: IRPC nombre,<cadena_de_caracteres> IRPC nombre,cadena_de_caracteres Descripción: Hace que el bloque de sentencias contenidas entre IRPC y ENDM se repita una vez para cada carácter de la cadena, sustituyendo nombre por el correspondiente carácter. Ejemplo: IRPC valor,<2568> ADD AX,valor... Endm En este ejemplo se repetiran las instrucciones entre IRPC y endm una vez para valor=2, otra vez para valor=5 otra vez para valor = 6 y otra vez para valor = 8, y el ensamblador generará ADD AX,2 ADD AX,5 ADD AX,6 ADD AX,8

19 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 19/ Directiva.LALL/.SALL/.XALL: Formato:.LALL.SALL.XALL Descripción: Estas directivas controlan la aparición o no en el listado de salida del ensamblador de las expansiones de las macros..lall - Lista las macros y sus expansiones.sall Suprime el listado de macros y sus expansiones.xall Lista sólo las sentencias que generan código objeto Directiva.LFCOND/.SFCOND/.TFCOND: Formato:.LFCOND.SFCOND.TFCOND Descripción: Estas directivas controlan la aparición o no en el listado de salida del ensamblador de los bloques condicionales falsos..lfcond - Lista los bloques asociados a una condición falsa.sfcond Suprime el listado de bloques asociados a una condición falsa.tfcond Invierte el modo de listado de bloques asociados a una condición falsa Directiva.LIST/.XLIST: Formato:.LIST.XLIST Descripción: Estas directivas controlan la generación o no del listado de salida del ensamblador.xlist Suprime el listado de las sentencias fuente y del código objeto hasta que se encuentre el próximo.list si lo hubiera..list restaura el listado. Es la opción por defecto.

20 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 20/ Directiva LOCAL: Formato: LOCAL etiqueta Descripción: Indica al ensamblador las etiquetas que debe cambiar cada vez que expande una macro. Con ello se evitan las definiciones múltiples de estas etiquetas. Si se usa debe ser la primera sentencia del cuerpo de la macro, es decir, debe ir a continuación de la directiva MACRO. Observaciones:! LOCAL sólo puede usarse dentro de la definición de una macro.! No se permiten comentarios (ni con comment ni con ;) entre las directivas macro y local! Los símbolos creados por Assembler para las etiquetas declaradas con LOCAL son de la forma: 0000 a FFFF Ejemplo: esperar MACRO numero LOCAL seguir Mov CX,numero seguir: LOOP seguir endm ejemplo PROC FAR include datos.asm INICIO: Mov cx,25h esperar cx Mov cx,32h esperar cx JMP INICIO MOV AX,4C00h INT 21H ejemplo ENDP

21 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 21/ Directiva MACRO: Formato: nombre MACRO lista de parámetros ENDM Descripción: Esta sentencia es la cabecera que indica el comienzo de una macro, dicha macro finalizará al encontrar la directiva ENDM. Entre ambas directivas se incluyen las sentencias que componen el cuerpo de la macro. La invocación de la macro se hace por su propio nombre seguido por los parámetros separados por comas Al realizar el ensamblado del programa, la invocación de las macros se sustituye por el cuerpo de la macro, a este proceso se le llama expansión de la macro Observaciones:! Pueden existir macros sin parámetros.! El número de argumentos en la invocación no tiene porque coincidir con el número de parámetros que hemos usado al definirla. Si hay más argumentos que parámetros, se ignoran los argumentos que sobran. Si hay menos argumentos que parámetros, los parámetros que faltan se convierten en nulos.! EL nombre de una macro puede ser el de una directiva o el de una instrucción. En este caso, se utiliza la definición de la macro, sustituyendo el significado normal. Si se utiliza la directiva Purge, se restaura el significado original.

22 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 22/ Directiva ORG: Formato: ORG expresión Descripción: Pone el contador de posiciones en el valor indicado por expresión. Observaciones:! Es necesario especificar ORG 100h en programas que se vayan a convertir a tipo.exe! expresión puede indicarse mediante el carácter $ que indica el valor actual del contador de posiciones.! ORG no puede usarse dentro de una estructura (bloque STRUC- ENDS) Ejemplos:! ORG 100h! ORG 200h! ORG $ Directiva %OUT: Formato: %OUT texto Descripción: Esta directiva sirve para escribir un mensaje en pantalla durante el ensamblaje. Se suele utilizar para indicar que camino se ha elegido en una condición

23 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 23/ Directiva PAGE: Formato: PAGE [operando1][,operando2] Descripción: Define la longitud y el tamaño de la página del listado de salida del ensamblador. Cada página del listado producida por el ensamblador contiene un número de capítulo y un número de página, separados por un guión El operando1 puede ser:! Número de líneas por página! El signo +, que indica nuevo capítulo (se incrementa en 1) y página igual a 1. Observaciones: Si se usa PAGE sin operandos, se inserta un salto de página y se incrementa en uno el número de página El número de página se incrementa cuando se completa una página o cuando se encuentra PAGE sin operandos. El número de capítulo se incrementa sólo con PAGE +. Ejemplos:! PAGE (66 líneas de 80 caracteres)! PAGE 88,132 (88 líneas de 132 caracteres)! PAGE 78 (78 líneas de 80 caracteres)! PAGE,100 (66 líneas de 100 caracteres)! PAGE + (Nuevo capítulo)

24 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 24/ Directiva PROC: Formato: nombre_procedimiento PROC [atributo] Descripción: Indica el comienzo del procedimiento nombre_procedimiento Un procedimiento es un bloque de instrucciones que sirve para realizar una tarea determinada y que puede invocarse desde varios puntos del programa. Puede asemejarse a una subrutina. Operandos: El atributo puede tomar los valores NEAR o FAR! Un procedimiento NEAR sólo se puede llamar desde el segmento en el que esta definido o desde un segmento que tiene el mismo valor definido en ASSUME CS! Al llamar a un procedimiento NEAR, se guarda sólo el desplazamiento (valor de IP) de la instrucción siguiente en la pila que se recupera al retornar de un procedimiento con la instrucción RET.! Un procedimiento FAR se puede llamar desde cualquier segmento. Al llamar a un procedimiento FAR se guarda el segmento y el desplazamiento de la instrucción siguiente en la pila en este orden, estos valores se recuperan al retornar del procedimiento con la instrucción RET

25 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 25/32 Observaciones: El bloque de sentencias de un procedimiento es: Nombre_procedimiento PROC atributos nombre_procedimiento ENDS! Si se desea que un procedimiento de un modulo sea accesible desde otros módulos, debe utilizarse la directiva PUBLIC PUBLIC Nombre_procedimiento Nombre_procedimiento PROC atributos RET nombre_procedimiento ENDS! El procedimiento principal de un programa debe ser de tipo FAR

26 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 26/ Directiva PUBLIC: Formato: PUBLIC símbolo Descripción: Permite que los símbolos especificados sean accesibles por otros módulos que serán montados conjuntamente, es decir, procesados por el programa LINK. Operandos: símbolo puede ser:! Un nombre de variable! Una etiqueta, incluidos nombres de procedimientos! Una constante de 16 bits Observaciones:! El módulo que usa un símbolo definido con PUBLIC debe contener una sentencia directiva EXTRN.! La sentencia PUBLIC puede aparecer en cualquier posición del programa fuente, por orden se recomienda ponerlas la principio. Ejemplo1:Si lo que quiere es hacer un procedimiento accesible desde otro módulo PUBLIC PROC1 PROC1 PROC FAR MOV AX,BX ADD AX,CX RET PROC1 ENDP El módulo que quiere invocar al procedimiento PROC1 hay que incluir la sentencia: EXTRN PROC1:FAR

27 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 27/32 Ejemplo2: Si lo que quiere es acceder a una variable desde dos módulos distintos. En el módulo que contiene la variable (por ejemplo VAR1), deben incluirse las sentencias: PUBLIC VAR1 VAR1 DW 0 El módulo que usa var1 debe contener EXTRN var1:word Ejemplo 3:Si lo que se desea es bifurcar a la instrucción de etiqueta ET1 desde otro módulo y desde el mismo segmento físico: El módulo que contiene la etiqueta es: Seg_A segment Public ET ET1:... ; se trata de una etiqueta NEAR ya que tiene : Seg_A ends El módulo desde el que tiene que bifurcar a ET1 es: EXTRN ET1:NEAR SEG_B SEGMENT JMP ET SEG_B ENDS Si la bifurcación a una e3tiqueta de un módulo se hace desde otro módulo en diferente segmento físico, el proceso será igual al anterior pero definiendo la etiqueta como FAR.

28 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 28/ Directiva PURGE: Formato: PUBLIC nombre de macro Descripción: Borra las macros especificadas de las tablas del ensamblador permitiendo que se reutilice el espacio. No es necesario purgar una macro antes de redefinirla Directiva.RADIX Formato:.RADIX expresión Descripción: Sirve para cambiar la base de numeración por defecto. Por defecto, los números sin sufijo se considera que están en base 10. Los sufijos son:! b binario! d decimal! o/q octal! h hexadecimal. Expresión está siempre en base 10, independientemente del valor de la base de numeración activa. Observaciones:!.RADIX no afecta a DD, DQ o DT, pues siempre suponen decimal, a menos que se especifique un sufijo del tipo de datos.! Si se especifica.radix 16, hay que tener cuidado con los números en hexadecimal terminados en D, pues el ensamblador los considera como valores decimales, en este caso habría que poner el sufijo h. Ejemplo:.RADIX 16 Establece base 16.RADIX 10 Establece base 10.RADIX 2 Establece base 2...

29 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 29/ Directiva REPT Formato: REPT Expresión Descripción: Hace que el bloque de sentencias entre REPT y ENDM se repitan el número de veces que indica la expresión. El bloque REPT-ENDM no es necesario que resida dentro de una definición de macro Ejemplo 1: Reservar cinco palabras inicializadas respectivamente con los cuadrados de los cinco primeros números naturales. N = 0 REPT 5 N = N + 1 DW N*N ENDM El ensamblador generará: DW 1 DW 4 DW 9 DW 16 DW Directiva SEGMENT Formato: Nombre SEGMENT [Alineamiento] [Combinación] [ clase ] nombre ENDS Descripción: Indica el comienzo del segmento nombre, el final de dicho segmento se indica con la directiva ENDS, y el nombre de ambas directivas debe ser el mismo. Un segmento es un bloque de sentencias que puede contener:! Definición de variables! Instrucciones! Combinación de las anteriores

30 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 30/32 Un módulo fuente ensamblador puede ser:! Parte de un segmento! Un segmento! Partes de varios segmentos! Varios segmentos! Una combinación de los anteriores. Existen cuatro tipos de segmentos que son: de datos (DS), de código(cs), de pila(ss) y extra (ES). En el alineamiento podemos indicar una de las siguientes opciones:! BYTE: ninguno, el segmento puede comenzar en cualquier posición.! WORD: El segmento empieza en una frontera de palabra, es decir, su dirección es múltiplo de 2.! PARA: El segmento empieza en una frontera de párrafo, es decir, su dirección es múltiplo de 16, Es el alineamiento por defecto! PAGE: El alineamiento empieza en una frontera de página; es decir, su dirección es múltiplo de 256. En la combinación podemos indicar una de las siguientes opciones:! Si no se indica los segmentos se colocarán uno tras otro físicamente, pero nivel lógico serán independientes usando cada uno de ellos una base y un offset.! PUBLIC: El segmento se concatenará a otros del mismo nombre en la fase de montaje LINK. El nombre de segmento que reconoce el montador es clase! AT expresión: El segmento se ubicará en la dirección cuyo segmento es expresión. Esta dirección no se usa para la carga del segmento en una dirección fija. Lo que si se permite es que se definan variables dentro del segmento. Normalmente se usa para referenciar zonas de memoria, como los vectores de interrupción o la memoria ROM.

31 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 31/32! STACK: Define este segmento como pila (stack). La pila es una zona de memoria que se utiliza para almacenar datos de forma temporal y se maneja con las instrucciones: PUSH, POP, PUSHF, POPF, CALL, RET, INT e IRET. Al menos debe haber un segmento de pila para crear un módulo ejecutable con el montador link.! MEMORY: El segmento se ubicará en una zona de memoria superior a la de los otros que aparecen durante el montaje del programa. Sólo puede haber un segmento de este tipo, si hubiera varios, sólo se procesaría el primero como Memory y el resto como Common - clase es el nombre que se utiliza para agrupar segmentos en fase de montaje linker y se especifica entre comillas simples. - Pueden existir segmentos anidados, uno dentro de otro. En este caso, el ensamblador los procesa como si no lo fueran juntando la primera parte del segmento partido con la segunda. - No se permiten segmentos que se solapen a excepción del alineamiento common Directiva SUBTTL Formato: SUBTTL texto Descripción: Especifica un subtítulo que aparecerá en el listado como segunda línea de cada página, detrás del título. Observaciones: - Se puede especificar cualquier número de sentencias SUBTTL por módulo. - Si no se utiliza ninguna sentencia SUBTTL, la segunda línea del listado aparecerá en blanco. - Si después de usar SUBTTL texto se desea que vuelva a salir en blanco se usa esta misma directiva sin indicar texto alguno.

32 ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 32/ Directiva TITLE Formato: TITLE texto Descripción: Especifica un título que aparecerá en el listado como primera línea en cada página. La longitud máxima del texto son 60 caracteres. Observaciones: Sólo se puede especificar una sentencia TITTLE por módulo Los seis primeros caracteres de texto se utilizan como nombre del módulo objeto, a menos que se haya incluido la directiva NAME Si no se usa ni TITTLE ni NAME el nombre del módulo objeto es el mismo que el del módulo fuente.

62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52

62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52 62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52 3DUWHGH(QVDPEODGRU 4º) Escribir un programa en ensamblador que pida un número de una cifra por teclado y saque como resultado

Más detalles

Arquitectura intel 8086. Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005

Arquitectura intel 8086. Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005 Arquitectura intel 8086 Preámbulo de OSO para alumnos formados en el procesador MIPS Asignatura Sistemas Operativos Murcia abril de 2005 página 1. Introducción 2 2.- Direccionamiento y Registros de Segmento

Más detalles

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador. PRACTICA #1 Aprender a programar una interrupción software empleando C y/o Ensamblador. Aprender a manipular dispositivos externos (8253, 8255) desde C y/o ensamblador. PROCEDIMIENTO: Vamos a programar

Más detalles

Apellidos Nombre DNI

Apellidos Nombre DNI A continuación se muestra el listado de un programa cuyo objetivo es encontrar una palabra dentro de una cadena de caracteres de la sección de datos y copiar dicha palabra en otra zona de la sección de

Más detalles

Tema 5: La pila, las macros y los procedimientos

Tema 5: La pila, las macros y los procedimientos Tema 5: La pila, las macros y los procedimientos S La pila S Las macros S Definición de procedimientos S Tipos de procedimientos: NEAR y FAR S Paso de parámetros a un procedimiento S Mediante registros

Más detalles

ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS. Características de un Ensamblador de Archivo

ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS. Características de un Ensamblador de Archivo ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS Características de un Ensamblador de Archivo Traduce de Leng Ensamblador a Lenguaje máquina Permite definición de etiquetas Reserva memoria para variables octales

Más detalles

Introducción al NASM. Convenciones de colores

Introducción al NASM. Convenciones de colores Introducción al NASM The Netwide Assembler MIA J. Rafael Rojano C. 1 Convenciones de colores Rojo= Directivas propias del nasm sin traducción directa a ensamblador Morado= Directivas del ensamblador En

Más detalles

MÓDULO III PROGRAMACIÓN DEL MICROPROCESADOR

MÓDULO III PROGRAMACIÓN DEL MICROPROCESADOR 85 MÓDULO III PROGRAMACIÓN DEL MICROPROCESADOR El módulo III está conformado por las unidades 7 y 8. El estudio de estas unidades, permite desarrollar en el estudiante las competencias necesarias en la

Más detalles

Apellidos Nombre DNI

Apellidos Nombre DNI Apellidos Nombre DNI Examen de Arquitectura de Computadores (Telemática) Convocatoria de Junio: 25 5 2 Se dispone de un programa escrito en ensamblador encargado de transformar un número escrito en decimal

Más detalles

Alternativas de programación

Alternativas de programación Alternativas de programación Enteramente en bajo nivel programa completo librería rutina particular Embebido en alto nivel rutinas librería 1 Alternativas de programación Enteramente en bajo nivel programa

Más detalles

Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15

Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15 Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15 Sistemas operativos, arquitectura von Neumann, configuración del PC (3 puntos) 1) Señale la opción correcta: [_]

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

SISTEMAS BASADOS EN MICROPROCESADOR 2º Grado Ingeniería Informática (EPS UAM) EXAMEN FINAL EXTRAORDINARIO JULIO 2013 ENUNCIADO DEL PROBLEMA

SISTEMAS BASADOS EN MICROPROCESADOR 2º Grado Ingeniería Informática (EPS UAM) EXAMEN FINAL EXTRAORDINARIO JULIO 2013 ENUNCIADO DEL PROBLEMA SISTEMAS BASADOS EN MICROPROCESADOR 2º Grado Ingeniería Informática (EPS UAM) EXAMEN FINAL EXTRAORDINARIO JULIO 2013 ENUNCIADO DEL PROBLEMA IMPLEMENTACIÓN DE UN DRIVER DOS INTERFAZ CON UN SISTEMA DE RADIO

Más detalles

DIRECTIVAS DEL ASM86

DIRECTIVAS DEL ASM86 DIRECTIVAS DEL ASM86 Directiva SEGMENT / ENDS nombre SEGMENT [alineación] [combinación] [nombre_clase] PARA PUBLIC BYTE COMMON WORD STACK PAGE MEMORY INPAGE AT nombre ENDS Se usa para definir un segmento

Más detalles

6-REGISTROS DEL 8086 Y DEL 80286

6-REGISTROS DEL 8086 Y DEL 80286 ESTRUCTURA DE COMPUTADORES I (Capítulo 6: Los registros del microprocesador 8086) 1/7 6-REGISTROS DEL 8086 Y DEL 80286 6.1 INTRODUCCIÓN: Dentro del procesador existen unos contenedores especiales de 16

Más detalles

INSTRUCCIONES ARITMÉTICAS.

INSTRUCCIONES ARITMÉTICAS. Microprocesadores. Guía 4 1 Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Microprocesadores. Lugar de ejecución: Microprocesadores (Edificio 3, 2da planta). INSTRUCCIONES ARITMÉTICAS. Objetivos

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

Ejemplo del uso de las subrutinas

Ejemplo del uso de las subrutinas Ejemplo del uso de las subrutinas Enunciado del problema: Diseñar un contador BCD que cuente de 0 a 59 para simular un timer de 60 segundos y que el conteo de dos dígitos BCD, sea desplegado en los displays

Más detalles

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN 2.1.- EJEMPLO DE UN PROGRAMA FORTRAN Con el presente apartado comenzaremos a conocer cómo se escribe un programa en lenguaje FORTRAN bajo el entorno de programación FORTRAN. En primer lugar conozcamos

Más detalles

La arquitectura del 8086/8088

La arquitectura del 8086/8088 Repasamos aquí la arquitectura de un PC. Para más información sobre lo aquí expuesto se puede consultar [PA01] y los capítulos iniciales de [Tej01], [Rod00] y [Nor01]. Anatomía del PC A grandes rasgos,

Más detalles

Parámetro de entrada. Un parámetro pasado del procedimiento que hace la llamada al procedimiento invocado.

Parámetro de entrada. Un parámetro pasado del procedimiento que hace la llamada al procedimiento invocado. CAPITULO 12 PROCEDIMIENTOS En el capítulo 6, aprendiste como utilizar un programa con procedimientos, en este capítulo aprenderás a usar las directivas e instrucciones que definen y llamas procedimientos.

Más detalles

LENGUAJE ENSAMBLADOR 80386 PRÁCTICA 11 PRÁCTICA 11 CUATRO OPERACIONES FUNDAMENTALES EN NÚMEROS DE 8 BYTES

LENGUAJE ENSAMBLADOR 80386 PRÁCTICA 11 PRÁCTICA 11 CUATRO OPERACIONES FUNDAMENTALES EN NÚMEROS DE 8 BYTES PRÁCTICA 11 SUMA, RESTA, MULTIPLICACIÓN Y DIVISIÓN DE DOS NÚMEROS ENTEROS POSITIVOS DE HASTA 20 DÍGITOS DECIMALES 1. INTRODUCCIÓN Mediante esta práctica, trabajaremos con números binarios de hasta veinte

Más detalles

Programación: QBASIC

Programación: QBASIC 1. QBASIC Programación: QBASIC Guía del alumno Qbasic es una versión moderna del lenguaje BASIC. Se trata de un lenguaje de alto nivel. En un lenguaje de alto nivel las instrucciones tienen un formato

Más detalles

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN PRÁCTICA DE LABORATORIO No I NOMBRE DE LA PRÁCTICA: COMANDOS BÁSICOS DE DEBUG( PARTE I) OBJETIVO: APRENDER LOS COMANDOS

Más detalles

Conceptos de Arquitectura de Computadoras Curso 2015

Conceptos de Arquitectura de Computadoras Curso 2015 PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.

Más detalles

Arquitectura de Computadores II 8086 Parte II

Arquitectura de Computadores II 8086 Parte II 8086 Parte II Facultad de Ingeniería Universidad de la República Instituto de Computación Contenido Funciones recursivas Manejadores de dispositivos Rutinas recursivas(1/10) Introducción Salvar contexto.

Más detalles

Scripting en el cliente: Javascript. Tecnologías Web

Scripting en el cliente: Javascript. Tecnologías Web Scripting en el cliente: Javascript Tecnologías Web Motivación Por qué usar JavaScript? Permite crear efectos atractivos visualmente Permite crear sitios WEB que se visualicen de la misma manera en distintos

Más detalles

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

Más detalles

Práctica 2. Registros y posiciones de memoria

Práctica 2. Registros y posiciones de memoria Enunciados de prácticas Práctica 2. Registros y posiciones de memoria Estructura y Organización de Computadores Grados en Ingeniería Informática e Ingeniería de Computadores Curso 2012-2013 Práctica 2:

Más detalles

Test: Conteste exclusivamente en HOJA DE LECTURA ÓPTICA. No olvide marcar que su tipo de examen es A.

Test: Conteste exclusivamente en HOJA DE LECTURA ÓPTICA. No olvide marcar que su tipo de examen es A. MATERIAL PERMITIDO: los libros Estructura y tecnología de computadores y Problemas de estructura y tecnología de computadores, ed. Sanz y Torres, y calculadora. NO SE PERMITEN FOTOCOPIAS. INSTRUCCIONES:

Más detalles

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS 4.1 Antecedentes históricos El lenguaje de programación BASIC (Beginner's All purpose Symbolic Instruction Code)

Más detalles

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información TEMA 1: SISTEMAS INFORMÁTICOS Parte 2: representación de la información Qué vamos a ver? Cómo se representa y almacena la información en un ordenador Cómo podemos relacionar la información que entendemos

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Para comenzar, abra el programa Inmediatamente aparecerá una ventana llamada editor de datos que tiene la siguiente forma:

Para comenzar, abra el programa Inmediatamente aparecerá una ventana llamada editor de datos que tiene la siguiente forma: 1. Descripción Generales del Paquete Estadístico SPSS. SPSS es un paquete estadístico orientado -en principio- al ámbito de aplicación de las Ciencias Sociales y que lleva en el mercado alrededor de 25

Más detalles

3.2 Operaciones aritmético-lógicas en Pascal

3.2 Operaciones aritmético-lógicas en Pascal 3.2 Operaciones aritmético-lógicas en Pascal Operadores Los operadores sirven para combinar los términos de las expresiones. En Pascal, se manejan tres grupos de operadores : 1. ARITMÉTICOS 2. RELACIONALES

Más detalles

UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL CÓRDOBA EL LENGUAJE DE LOS DATOS EN LA PC Y SU FORMA DE ALMACENAMIENTO

UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL CÓRDOBA EL LENGUAJE DE LOS DATOS EN LA PC Y SU FORMA DE ALMACENAMIENTO UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL CÓRDOBA EL LENGUAJE DE LOS DATOS EN LA PC Y SU FORMA DE ALMACENAMIENTO TRABAJO REALIZADO COMO APOYO PARA LA CATEDRA INFORMATICA I Autora: Ing. Ing. Sylvia

Más detalles

El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario.

El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario. 1 LENGUAJE ENSAMBLADOR El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario. El lenguaje ensamblador expresa las instrucciones de una

Más detalles

Lenguaje C. Tipos de Datos Simples y Estructuras de Control

Lenguaje C. Tipos de Datos Simples y Estructuras de Control Lenguaje C Tipos de Datos Simples y Estructuras de Control Lenguaje C C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje

Más detalles

PROGRAMACIÓN BÁSICA DE LA COMPUTADORA. 1 Introducción. Tabla 1: Instrucciones MIPS

PROGRAMACIÓN BÁSICA DE LA COMPUTADORA. 1 Introducción. Tabla 1: Instrucciones MIPS PROGRAMACIÓN BÁSICA DE LA COMPUTADORA 1 Introducción Un sistema de computadora total incluye tanto circuitería (hardware) como programación (software). El hardware consta de los componentes físicos y todo

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

PARTE II: Programación en ensamblador

PARTE II: Programación en ensamblador Cuaderno de Prácticas Laboratorio de Fundamentos de Computadores PARTE II: Programación en ensamblador Autor: Rafael Moreno Vozmediano Facultad de Informática La Máquina Rudimentaria: Arquitectura del

Más detalles

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C Directivas del procesador Main() { Declaraciones Definiciones proposiciones }

Más detalles

8 millares + 2 centenas + 4 decenas + 5 unidades + 9 décimos + 7 céntimos

8 millares + 2 centenas + 4 decenas + 5 unidades + 9 décimos + 7 céntimos COLEGIO HISPANO INGLÉS Rambla Santa Cruz, 94-38004 Santa Cruz de Tenerife +34 922 276 056 - Fax: +34 922 278 477 buzon@colegio-hispano-ingles.es TECNOLOGÍA 4º ESO Sistemas de numeración Un sistema de numeración

Más detalles

La arquitectura CISCA

La arquitectura CISCA La arquitectura CISCA Miquel Albert Orenga Gerard Enrique Manonellas PID_00181526 CC-BY-SA PID_00181526 La arquitectura CISCA Los textos e imágenes publicados en esta obra están sujetos excepto que se

Más detalles

Introducción a la programación en Lenguaje Assembler.

Introducción a la programación en Lenguaje Assembler. Introducción a la programación en Lenguaje Assembler. Que son las instrucciones El set de instrucciones de un microprocesador es el set de entradas binarias que producen acciones definidas durante un ciclo

Más detalles

Capitulo 12. Tira de bits

Capitulo 12. Tira de bits Capitulo 12. Tira de bits 12.1 Representación de números naturales (enteros positivos) base 10 base 2 base 16 decimal binario hexadecimal 0 0 0 1 1 1 2 10 2 3 11 3 4 100 4 5 101 5 6 110 6 7 111 7 8 1000

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

PROGRAMACIÓN EN C. PRÁCTICA 2: Operaciones con bits. Práctica 2: Índice. 2.1 Introducción 2.2 Representación de información binaria en C

PROGRAMACIÓN EN C. PRÁCTICA 2: Operaciones con bits. Práctica 2: Índice. 2.1 Introducción 2.2 Representación de información binaria en C PROGRAMACIÓN EN C PRÁCTICA 2: Operaciones con bits Práctica 2: Índice 2.1 Introducción 2.2 Representación de información binaria en C 2.3 Operando con bits en C 2.4 Máscaras 2.5 Desplazamientos 2.6 Ejercicios

Más detalles

DIAGRAMAS DE FLUJO: DFD

DIAGRAMAS DE FLUJO: DFD DIAGRAMAS DE FLUJO: DFD DFD es un programa de libre disposición para ayuda al diseño e implementación de algoritmos expresados en diagramas de flujo (DF). Además incorpora opciones para el depurado de

Más detalles

Operación de Microsoft Word

Operación de Microsoft Word Generalidades y conceptos Combinar correspondencia Word, a través de la herramienta combinar correspondencia, permite combinar un documento el que puede ser una carta con el texto que se pretende hacer

Más detalles

Práctica 3: Programación con subrutinas

Práctica 3: Programación con subrutinas Práctica 3: Programación con subrutinas 3.1 Objetivos El objetivo de esta práctica es estudiar el soporte del ensamblador del ARM para la gestión de subrutinas, para lo que resulta necesario familiarizarse

Más detalles

La memoria principal. Los subsistemas de E/S. Los buses del sistema

La memoria principal. Los subsistemas de E/S. Los buses del sistema GUIA 23: MEMORIA E/S La estructura básica de la mayoría de los ordenadores actuales se representa mediante los siguientes elementos básicos: La Unidad Central de Procesamiento, CPU La memoria principal

Más detalles

Qué es una base de datos?

Qué es una base de datos? Qué es una base de datos? Una base de datos es un conjunto de datos organizados en filas y columnas. Access 2010 es una base de datos relacional, con lo que aún estando los datos guardados en tablas diferentes

Más detalles

Examen de Arquitectura de Computadores 2 22 de febrero del 2011

Examen de Arquitectura de Computadores 2 22 de febrero del 2011 Examen de Arquitectura de Computadores 2 22 de febrero del 2011 Indique su nombre completo y número de cédula en cada hoja. Numere todas las hojas e indique el total de hojas en la primera. Escriba las

Más detalles

Tiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador.

Tiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador. ORGANIZACIÓN DE LA MEMORIA EN TIEMPO DE EJECUCIÓN Compilador Tiempo de Compilación Programa fuente Secuencia de caracteres Scanner Secuencia de símbolos Parser Árbol sintáctico Analizador semántico Generador

Más detalles

Buses y Periféricos 2006/2007 Práctica 3. Ensamblador

Buses y Periféricos 2006/2007 Práctica 3. Ensamblador Calculadora Descripción El objetivo de esta práctica es utilizar las interrupciones de BIOS y MSDOS para presentar una pequeña calculadora en pantalla. Se pretende programar una calculadora que opere en

Más detalles

Tema 3 Elementos básicos de programación

Tema 3 Elementos básicos de programación Representación de Datos y Aplicaciones Tema 3 Elementos básicos de programación Natividad Martínez Madrid nati@it.uc3m.es Objetivos del tema 3 Conocer la estructura básica de un programa Java Comprender

Más detalles

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

TEMA 3: EL LENGUAJE C: PRESENTACIÓN TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de

Más detalles

C APÍTULO 1 Gestión de documentos

C APÍTULO 1 Gestión de documentos C APÍTULO 1 Gestión de documentos En este capítulo encontrará unas sencillas indicaciones para cocripción somera del entorno de trabajo de Word, así como una referencia rápida a las funciones de las teclas

Más detalles

La complejidad de los automatismos y la necesidad de especificar con precisión las tareas => útiles simbólicos de representación

La complejidad de los automatismos y la necesidad de especificar con precisión las tareas => útiles simbólicos de representación PROGRAMACIÓN DEL AUTÓMATA Tiene una serie de pasos: Determinar qué debe hacer el sistema de control y en qué orden Identificar entradas y salidas al autómata Representar mediante un modelo el sistema de

Más detalles

Curso PHP Módulo 1 R-Luis

Curso PHP Módulo 1 R-Luis Lenguaje PHP Introducción Archivos HTML y PHP: Crear un archivo php es tan sencillo como cambiarle la extensión a un archivo html, por ejemplo podemos pasar de index.html a index.php sin ningún inconveniente.

Más detalles

EIE 446 - SISTEMAS DIGITALES Tema 2: Sistemas de Numeración, Operaciones y Códigos

EIE 446 - SISTEMAS DIGITALES Tema 2: Sistemas de Numeración, Operaciones y Códigos EIE 446 - SISTEMAS DIGITALES Tema 2: Sistemas de Numeración, Operaciones y Códigos Nombre del curso: Sistemas Digitales Nombre del docente: Héctor Vargas Fecha: 1 er semestre de 2011 INTRODUCCIÓN El sistema

Más detalles

Clase 1 Sistemas de numeración

Clase 1 Sistemas de numeración Administración y Configuración de Redes Clase Sistemas de numeración Contenidos Importancia del Sistema de Numeración Sistema de Numeración Decimal Sistema de Numeración Conversión Decimal Binaria Conversión

Más detalles

Uso de las herramientas de consulta de Transact-SQL

Uso de las herramientas de consulta de Transact-SQL Uso de las herramientas de consulta de Transact-SQL Contenido Introducción 1 Analizador de consultas SQL 2 Uso de la herramienta Examinador de objetos en el Analizador de consultas SQL 3 Uso de plantillas

Más detalles

Estructura de Datos. Unidad I Tipos de Datos

Estructura de Datos. Unidad I Tipos de Datos Estructura de Datos Unidad I Tipos de Datos Conceptos Básicos Algoritmo: es una secuencia finita de pasos o instrucciones ordenadas crono-lógicamente que describen un método para resolver un problema específico.

Más detalles

UNIDAD 2 Configuración y operación de un sistema de cómputo Representación de datos Conceptos El concepto de bit (abreviatura de binary digit) es fundamental para el almacenamiento de datos Puede representarse

Más detalles

ESTRUCTURA DE COMPUTADORES I (Capítulo 1: Estructura elemental de la memoria) 1/6 1-ESTRUCTURA ELEMENTAL DE LA MEMORIA

ESTRUCTURA DE COMPUTADORES I (Capítulo 1: Estructura elemental de la memoria) 1/6 1-ESTRUCTURA ELEMENTAL DE LA MEMORIA ESTRUCTURA DE COMPUTADORES I (Capítulo 1: Estructura elemental de la memoria) 1/6 1-ESTRUCTURA ELEMENTAL DE LA MEMORIA 1.1 BIT Toda la memoria del ordenador se compone de dispositivos electrónicos que

Más detalles

1 Estructura básica de un programa C++

1 Estructura básica de un programa C++ Elementos básicos de un lenguaje de alto nivel: C++ CONTENIDOS 1. Estructura básica de un programa C++. 2. Tipos de datos simples. 3. Constantes y variables en C++. Declaración. 4. Operadores y expresiones.

Más detalles

EL EMU8086 Y EL MICROPROCESADOR 8086.

EL EMU8086 Y EL MICROPROCESADOR 8086. 1 Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Microprocesadores. Lugar de ejecución: Microprocesadores (Edificio 3, 2da planta). EL EMU8086 Y EL MICROPROCESADOR 8086. Objetivos específicos

Más detalles

Sistemas de numeración

Sistemas de numeración Sistemas de numeración Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se caracterizan

Más detalles

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas.

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas. Contenido Sistema de archivos Operaciones sobre archivos Métodos de acceso a archivos Directorio Sistema de archivos por capas Espacio libre Sistema de archivos Proporciona el mecanismo para el almacenamiento

Más detalles

21/02/2012. Agenda. Unidad Central de Procesamiento (CPU)

21/02/2012. Agenda. Unidad Central de Procesamiento (CPU) Agenda 0 Tipos de datos 0 Sistemas numéricos 0 Conversión de bases 0 Números racionales o Decimales 0 Representación en signo-magnitud 0 Representación en complemento Unidad Central de Procesamiento (CPU)

Más detalles

Tema 2: Sistemas de representación numérica

Tema 2: Sistemas de representación numérica 2.1 Sistemas de Numeración Definiciones previas Comenzaremos por definir unos conceptos fundamentales. Existen 2 tipos de computadoras: Analógicas: actúan bajo el control de variables continuas, es decir,

Más detalles

Curso de Visual Basic 6.0 - Lección 1 Area Interactiva - www.areaint.com

Curso de Visual Basic 6.0 - Lección 1 Area Interactiva - www.areaint.com LECCIÓN 6 En esta lección vamos a familiarizarnos con las estructuras de repetición, las cuales nos sirven para realizar una misma instrucción un número determinado de veces o indeterminado dependiendo

Más detalles

Capítulo 0. Introducción.

Capítulo 0. Introducción. Capítulo 0. Introducción. Bueno, por fin está aquí el esperado (espero!!) Capítulo Cero del Tutorial de Assembler. En él estableceremos algunos conceptos que nos serán de utilidad a lo largo del Tutorial.

Más detalles

Representación de la Información

Representación de la Información Representar: Expresar una información como una combinación de símbolos de un determinado lenguaje. Trece -> símbolos 1 y 3 Interpretar: Obtener la información originalmente representada a partir de una

Más detalles

Funciones en Excel (II)

Funciones en Excel (II) Funciones en Excel (II) Las Funciones de Texto Jose Ignacio González Gómez Departamento de Economía Financiera y Contabilidad - Universidad de La Laguna www.jggomez.eu INDICE 1 Para qué las funciones de

Más detalles

EXAMEN ORDINARIO DE ORGANIZACIÓN DE COMPUTADORES

EXAMEN ORDINARIO DE ORGANIZACIÓN DE COMPUTADORES 6 de febrero de 2008. 16 h. Escuela Técnica Superior de Ingeniería Informática Camino del Cementerio s/n. 47011 Valladolid EXAMEN ORDINARIO DE ORGANIZACIÓN DE COMPUTADORES NOTA: Los alumnos con las prácticas

Más detalles

"Programación en Ensamblador del microprocesador Pentium (I)"

Programación en Ensamblador del microprocesador Pentium (I) PRÁCTICA 3 "Programación en Ensamblador del microprocesador Pentium (I)" ÍNDICE 3.1.- El microprocesador Pentium. 3.2.- Inserción de ensamblador en Visual Studio. 3.3.- Facilidades para la depuración de

Más detalles

Intel 8086. Arquitectura. Programación en Ensamblador Ing. Marcelo Tosini - 2001

Intel 8086. Arquitectura. Programación en Ensamblador Ing. Marcelo Tosini - 2001 Intel 8086 Arquitectura Características generales Procesador de 16 bits Bus de direcciones de 20 bits : 1 Mbyte Bus de datos interno de 16 bits Bus de datos externo de 16 bits en el 8086 8 bits en el 8088

Más detalles

El lenguaje C. 1. Más sobre Instrucciones de control

El lenguaje C. 1. Más sobre Instrucciones de control Principios de ción El lenguaje C 1. Más sobre Instrucciones de control Estudiaremos con mayor detalle la repetición y presentaremos estructuras adicionales de control de la repetición a saber las estructuras

Más detalles

Capítulo 6. Modificar archivos de datos. Ordenar casos

Capítulo 6. Modificar archivos de datos. Ordenar casos Capítulo 6 Modificar archivos de datos Los archivos de datos no siempre están organizados de forma idónea. En ocasiones podemos desear cambiar el orden de los casos, o transponer las filas y las columnas,

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03. INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011

Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011 Módulo 2. Fundamentos de Programación Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011 1 CONTENIDO Tema 1. Conceptos generales de algorítmica Tema 2. Sentencias

Más detalles

Tutorial Básico de vbscript

Tutorial Básico de vbscript Tutorial Básico de vbscript Bueno, primero aclarar que este tutorial, pretende explicar de manera básica las distintas instrucciones aplicadas en visual basic script (vbs de aquí en más), para que así

Más detalles

Nibble Sirve para representar números hexadecimales. ( 0-9 A F) Sirve para representar números BCD (0...9)

Nibble Sirve para representar números hexadecimales. ( 0-9 A F) Sirve para representar números BCD (0...9) Formatos Binarios (80x86 ) 8 bits x 7 x 6 x 5 x 4 x 3 x 2 x 1 x 0 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 Alta orden ó más significativo significativo baja orden ó menos 16 bits x 15 x 14 x 13 x 12 x 11 x 10 x

Más detalles

Funciones. Diseño de funciones. Uso de instrucción jal y retorno de subrutina.

Funciones. Diseño de funciones. Uso de instrucción jal y retorno de subrutina. MIPS Funciones 1 Funciones Diseño de funciones. Uso de instrucción jal y retorno de subrutina. Se suelen denominar funciones, procedimientos, subrutinas, subprogramas a las estructuras que emplean los

Más detalles

Tema 4: Sistemas de Numeración. Codificación Binaria. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Tema 4: Sistemas de Numeración. Codificación Binaria. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid Tema 4: Sistemas de Numeración. Codificación Binaria Ingeniería Informática Universidad Autónoma de Madrid 1 O B J E T I V O S Sistemas de Numeración. Codificación Binaria Conocer los diferentes sistemas

Más detalles

TEMA II: REPRESENTACIÓN DE LA INFORMACIÓN

TEMA II: REPRESENTACIÓN DE LA INFORMACIÓN TEMA II: REPRESENTACIÓN DE LA INFORMACIÓN 2.1. Introducción. El computador procesa información. Para que un ordenador ejecute unos datos es necesario darle dos tipos de información: las instrucciones que

Más detalles

2.4. Modos de direccionamiento Distintas formas que tiene la arquitectura para especificar la ubicación de los operandos.

2.4. Modos de direccionamiento Distintas formas que tiene la arquitectura para especificar la ubicación de los operandos. 2.4. Modos de direccionamiento Distintas formas que tiene la arquitectura para especificar la ubicación de los operandos. Objetivos: - Reducir el número de bits para especificar un operando en memoria.

Más detalles

Instructivo de Microsoft Excel 2003

Instructivo de Microsoft Excel 2003 Instructivo de Microsoft Excel 2003 El presente instructivo corresponde a una guía básica para el manejo del programa y la adquisición de conceptos en relación a este utilitario. Que es Microsoft Excel?

Más detalles

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4 CAPÍTULO 4. Formas alternativas de escribir un texto........ Columnas Para fijar columnas se posiciona el Punto de Inserción donde se desee que comiencen las columnas, o bien se selecciona el texto que

Más detalles

Aritmética del computador. Departamento de Arquitectura de Computadores

Aritmética del computador. Departamento de Arquitectura de Computadores Aritmética del computador Departamento de Arquitectura de Computadores Contenido La unidad aritmético lógica (ALU) Representación posicional. Sistemas numéricos Representación de números enteros Aritmética

Más detalles

SOLUCION EXAMEN junio 2006

SOLUCION EXAMEN junio 2006 SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los

Más detalles

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda: Apuntes de ACCESS Campos de Búsqueda: Los campos de búsqueda permiten seleccionar el valor de un campo de una lista desplegable en lugar de tener que escribirlos. El usuario sólo tiene que elegir un valor

Más detalles

Introducción a la Programación en MATLAB

Introducción a la Programación en MATLAB Introducción a la Programación en MATLAB La programación en MATLAB se realiza básicamente sobre archivos M, o M-Files. Se los denomina de esta forma debido a su extensión.m. Estos archivos son simple archivos

Más detalles

Tècnic Auxiliar en Disseny Industrial - Manual Autocad 2011. Atributos. Un atributo es un objeto que se crea e incluye con una definición de bloque.

Tècnic Auxiliar en Disseny Industrial - Manual Autocad 2011. Atributos. Un atributo es un objeto que se crea e incluye con una definición de bloque. ATRIBUTOS Un atributo es un objeto que se crea e incluye con una definición de bloque. Los atributos pueden almacenar datos como números de serie, nombres de productos, etc. Ejemplos de algunas aplicaciones

Más detalles

Módulo II - Excel. Identificando tipos de datos... 2. Introduciendo datos en las celdas... 3. Llenando automáticamente las celdas...

Módulo II - Excel. Identificando tipos de datos... 2. Introduciendo datos en las celdas... 3. Llenando automáticamente las celdas... Módulo II - Excel Índice Identificando tipos de datos... 2 Introduciendo datos en las celdas... 3 Llenando automáticamente las celdas... 4 Seleccionando un rango de celdas... 5 Seleccionando una fila o

Más detalles