M

magaligrillo

Usuario (Argentina)

Primer post: 10 oct 2012Último post: 11 oct 2012
2
Posts
1
Puntos totales
1
Comentarios
S
SQL Ejemplos de Consultas
Apuntes Y MonografiasporAnónimo10/11/2012

codA, nombre , nacionalidad, ciudad) Libro ( CodL, titulo, precio,codE) Editorial(codE,nombre , ciudad_e) Escribe( codA, codL,%derecho_autor) listado de codigo de autores Para hacer las Selecciones : Select cod A from Autor; Select a1.......an From R1......Rn [ Where C ] Seleciona.... [order by] [group by] SQL DDL: Create table - alter table- update - delete- insert DML:Select. Select Libro.codE From Editorial,Libro Where precio > 100 and libro.codE= editoria.codE Select codE From editorial Natural Join Libro Where precio > 100 Select libro. codE From Editorial . Inner Join Libro on ( Editorial= Libro.codE) Where precio> 100 Para eliminar Duplicados: Select Distint codA From Escribe Les dejo una pagina muy didactica y buenisima para practicar: http://www.sqlzoo.net/wiki/SELECT

0
0
Arquitectura del computador- Debug
Arquitectura del computador- Debug
Apuntes Y MonografiasporAnónimo10/10/2012

DEBUG Ingresar al debug Escribir la orden debug en el prompt del DOS C:>debug - Ya estamos posicionados en el DEBUG y éste está preparado para recibir órdenes del debug. Tipeamos lo siguiente: -? Nos mostrará la información que sigue. ensamblar A [dirección] comparar C dirección de intervalo volcar D escribir E dirección llenar F lista de intervalos Ir G [=dirección] hex H valor1 valor2 entrada I puerto cargar L [dirección] [primer_sector] [número] mover M dirección de intervalo nombre N [nombre_ruta] [lista_argumentos] salida O byte de puerto proceder P [=dirección] [número] salir Q registrar R buscar S lista de intervalos seguimiento T [=dirección] desensamblar U escribir W [dirección] [primer_sector] [número] asignar memoria expandida XA [#páginas] desasignar memoria expandida XD asignar páginas de memoria expandida XM [Lpágina] [Ppágina] mostrar estado de la memoria expandida XS Ver los registros de la cpu. Escribir en el prompt del debug -r Nos muestra lo que sigue: AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1987 ES=1987 SS=1987 CS=1987 IP=0100 NV UP EI PL NZ NA PO NC - El significado de los diferentes registros se da en la tabla siguiente. AX: Acumulador *Almacena el resultado de operaciones matemáticas; lectura / escritura (I/O) desde y hacia los puertos que están conectados con los periféricos; almacena también un área de memoria temporal. BX :Registro Base *Almacena direcciones o valores y puede interactuar con el Acumulador. CX: Registro Contador *Utilizados para la ejecución de LOOPS y puede ser incrementado o decrementado según la instrucción que sea necesaria DX :Registro de Datos *De acuerdo a la estructura de computadores analizada por nosotros corresponde al MDR (MEMORY DATA REGISTER) y es el paso intermedio para el ingreso de datos. DS: Registro de segmento de datos *Es un puntero que nos indica la dirección donde se encuentran los datos. ES: Segmento extra para datos *Igual que el anterior pero apuntando a una dirección mayor. SS: Registro de segmento de pila * Indica donde se encuentra el STACK. CS: Registro de segmento código *Indica donde esta almacenado el código para la ejecución del programa. BP: Puntero del STACK *Registro complementario para no modificar el SS. SI: Registro de índice de segmento *Almacena una dirección que nos indica donde se encuentra el vector de datos. DI: Ìndice destino *Contiene una dirección donde se copiara el vector de datos indicado por SI. SP: Puntero de Pila (STACK POINTER) * Permite saber donde se encuentra el último dato almacenado en el STACK. Siempre debe ser mayor o igual al SS o BP IP :Apuntador de la siguiente instrucción (INSTRUCTION POINTER) *También llamado PROGRAM COUNTER. Tiene almacenada la dirección de la próxima instrucción a ser ejecutada. Registro bandera o STATUS REGISTER, que nos da el resultado de la última operación de la ALU. Señal REF Función REF Función Overflow NV No hay OV Hay Direction UP Hacia adelante DN Hacia atrás Interrupts DI Desactivadas EI Activadas Sign PL Valor positivo NG Valor negativo Zero NZ No es cero ZR Es cero Auxiliary Carry NA No hay acarreo AC Hay acarreo Parity PO Paridad impar PE Paridad Par Carry NC No hay acarreo CY Se produjo acarreo Comando del debug r (registro) Nos permite interactuar con los registros de la CPU, posibilitando modificar sus contenidos. Cuando tipeamos r sin ningún otro parámetro nos muestra todos los registros con sus respectivos contenidos, pero si agregamos un parámetro nos va a mostrar solo el contenido del registro que nosotros mencionamos: -r bx BX 0000 -r bx BX 0000 :5555 -r AX=0000 BX=5555 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1987 ES=1987 SS=1987 CS=1987 IP=0100 NV UP EI PL NZ NA PO NC Comando del debug a (dirección) Nos permite ingresar código assembler en la memoria del computador. Se escribe la a y luego la dirección de memoria donde se almacenará el programa assembler -a 100 XXXX:0100 MOV AX, 0200 Mover 200 al acumulador (AX) XXXX:0103 MOV BX, 0300 Mover 300 al Registro Base (BX) Sumar con el debug. Se pide sumar dos valores (200 y 300) Ingresamos las siguientes instrucciones en el orden dado -a 100 Indica que se debe comenzar a ingresar datos a partir de la posición 100 XXXX:0100 MOV AX, 0200 Mover 200 al acumulador (AX) XXXX:0103 MOV BX, 0300 Mover 300 al Registro Base (BX) XXXX:0106 ADD AX, BX Sumar BX a AX XXXX:0108 - Comando del debug u (dirección desde) (dirección hasta) Nos permite ver el código assembler que está almacenado en la memoria del computador a partir de la dirección desde hasta la dirección hasta. -u 0100 010A XXXX:0100 MOV AX, 0200 Mover 200 al acumulador (AX) XXXX:0103 MOV BX, 0300 Mover 300 al Registro Base (BX) XXXX:0106 ADD AX, BX Sumar BX a AX XXXX:0108 Observemos los diferentes tamaños de las instrucciones que utilizamos: La primera y segunda corresponden a la sentencia MOV (mover) y tienen un longitud de tres bytes. La tercera corresponde a una instrucción de suma y tiene solo dos. Comando del debug d (dirección) Nos muestra la memoria dividida en dos partes a partir de una dirección dada. a) La comprendida por caracteres hexadecimales que nos permiten ver todo el contenido de la memoria porque la combinación de bits en un nibble (4 bits) siempre tiene representación en hexadecimal. b) En caracteres, en castellano o ingles, pero no se entiende mucho porque normalmente la configuración de memoria no tiene una estructura semántica y sintáctica que podamos comprender. c) El guión que separa en dos partes la memoria expresada en hexadecimal no indica el cambio de palabra. Direccionamiento de memoria Este programa muestra como se carga un dato en el registro AX desde la dirección de memoria 0200 correspondiente al segmento de datos DS. La manera es simple se coloca entre corchetes la dirección de memoria [0200 ]. -a 1987:0100 mov ax,[0200] 1987:0103 mov cx,[0FFF] 1987:0107 add ax,cx 1987:0109 Comando del debug -t Nos permite ejecutar el programa anterior paso a paso Primero vemos que tienen almacenados los registros de la cpu. -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1987 ES=1987 SS=1987 CS=1987 IP=0100 NV UP EI PL NZ NA PO NC 1987:0100 A10002 MOV AX,[0200] DS:0200=A708 - Vemos que AX = 0000 que CX= 0000 y que la dirección [0200] = A708 que está indicada por el registro DS que se encuentra en la parte inferior derecha del ejemplo y en negrilla. Ahora vamos a usar el comando TRACE que se representa por la letra t. Este nos permite ver paso a paso que sucede en nuestro computador. -t AX=A708 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1987 ES=1987 SS=1987 CS=1987 IP=0103 NV UP EI PL NZ NA PO NC 1987:0103 8B0EFF0F MOV CX,[0FFF] DS:0FFF=DB52 - Vemos que la primera instrucción modificó el contenido del registro AX con el valor de DS. Esto está bien, porque es lo que nosotros pedimos. Si volvemos a tipear t ejecutaremos la segunda instrucción. -t AX=A708 BX=0000 CX=DB52 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1987 ES=1987 SS=1987 CS=1987 IP=0107 NV UP EI PL NZ NA PO NC 1987:0107 01C8 ADD AX,CX - Vemos que ahora no aparece el registro DS porque en la instrucción que se va a ejecutar no mencionamos direcciones. -t AX=825A BX=0000 CX=DB52 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1987 ES=1987 SS=1987 CS=1987 IP=0109 NV UP EI NG NZ NA PE CY 1987:0109 CD20 INT 20 - Se ha realizado la suma de los dos registros y algunas cosas se han modificado. a) El registro AX se ha modificado pero notemos que el nuevo valor es inferior al que ya teníamos almacenado. ¿Porqué? La respuesta es simple porque se ha producido un acarreo. Se recomienda realizar la suma manualmente para comprobar que lo sucedido es cierto. b) Veamos que el STATUS REGISTER ha modificado su valor indicándonos que eso ha sucedido, para mayor claridad lo marcamos en negrilla y en color. c) Compárelo con el DISPLAY anterior. Por último ejecutemos INT 20. -t AX=825A BX=0000 CX=DB52 DX=0000 SP=FFE8 BP=0000 SI=0000 DI=0000 DS=1987 ES=1987 SS=1987 CS=00CA IP=0FA8 NV UP DI NG NZ NA PE CY 00CA:0FA8 90 NOP - Observemos que la nueva instrucción que aparece es un NOP (NO OPERATION) indicándonos que el programa ha terminado. NOTA: Podemos ejecutar directamente (t) pero nos mostrará la segunda instrucción a ejecutarse y la primera ya ejecutada. Tipee q en la línea de comando, vuelva a tipear DEBUG y cargue nuevamente el programa, posteriormente empiece directamente con el TRACE. -

1
2
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.