elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19
41  Programación / Java / Consulta sobre bases de datos e instalador en: 23 Mayo 2014, 23:45 pm
Conozco C++ y Java a un nivel intermedio pero referente a páginas web no he revisado mucho aún... sin embargo, por curiosidad quería ejecutar algunas líneas de código PHP e instalé en mi ordenador el servidor WampServer. He visto que algunos usan Xammp en su lugar.

Desde que lo instalé puedo acceder a localhost para ver las páginas PHP de modo local y además a phpMyAdmin para consultar algunas bases de datos que estaban vinculadas con mis programas en Java.

Las bases de datos las he creado usando la herramienta Workbench donde es posible definir las tablas, sus columnas y las relaciones de modo gráfico y luego generar un código SQL que finalmente era importado al phpMyAdmin. Y aquí está mi duda.

phpMyAdmin es solo un gestor de BD pero no es necesario que importe el SQL allí para que la BD sea creada, ¿verdad? Porque me parece haber visto que desde el Workbench también es posible conectarse a la BD e importar el SQL correspondiente. Eso quiere decir que al fin y al cabo las bases de datos son también archivos, ¿verdad? Solo que guardan datos de un modo más ordenado y permiten operaciones de búsqueda. Esto último es lo que identifico como ventaja, por la cual usar BD en vez de guardar los datos en archivos.

Entonces la pregunta es... si tengo un programa con BD ya totalmente funcional y quiero dejar tal sistema listo para usarse en un pequeño negocio de venta, ¿cómo podría crear un instalador que cree la BD una única vez y que descomprima el .jar en una ruta del disco C? porque no es necesario instalar un servidor como Wamp, ¿verdad?
42  Programación / Java / Re: Insertar elementos a una tabla en: 22 Mayo 2014, 21:17 pm
Es posible que tanto tabla[0].getIstPrivado() como paquete.getIstOrigen() hagan referencia al mismo objeto, y que ambos se modifiquen si se modifica uno. Al menos eso creo :S
43  Programación / ASM / Re: Consulta sobre condiciones y saltos en: 18 Mayo 2014, 01:59 am
Gracias por responder.

Ahora solo me queda una duda teórica...
¿Por qué no es correcto decir que se compila? Es decir, la traducción de un lenguaje de programación a código máquina es justamente el proceso de compilación.
Además me pregunto si lenguajes como C++ o Java son traducidos primero a lenguaje ensamblador y luego recién a código máquina...
44  Programación / ASM / Re: Consulta sobre condiciones y saltos en: 17 Mayo 2014, 23:05 pm
Entendí la idea de cómo es que funcionan, pero la verdad no entendí el código que escribió :S
Los programas los compilamos con un comando llamado TASM, el profesor nos dijo que era conocido como "Turbo Assembler".
Su código se me hace extraño porque siempre usé una etiqueta luego de JMP y un registro o una variable luego de PUSH.

Cómo sería en el siguiente caso?
Código
  1. BORRAR PROC NEAR
  2.  ; Código sin RET
  3. BORRAR ENDP
  4.  
  5. GRAFICAR PROC NEAR
  6.  ; Código
  7.  RET
  8. GRAFICAR ENDP

Significa que como no se encontró RET en BORRAR la ejecución pasó por sobre el "BORRAR ENDP" y ejecuto lo de GRAFICAR para luego retornar al lugar desde donde se invocó BORRAR? (ya que CALL BORRAR supuestamente hizo un PUSH y el RET de GRAFICAR tomo ese offset para ir allí).

Muchas gracias por su ayuda.
45  Programación / ASM / Re: Consulta sobre condiciones y saltos en: 17 Mayo 2014, 21:41 pm
Quise evitar poner el código porque cierta vez me pasó que publiqué mi desarrollo en un foro y "ciertos compañeros" resultaron plagiándolo y cambiándolo ligeramente... felizmente el profesor no lo notó  :silbar:

Logré solucionarlo de 2 formas...
la 1ra es usando "saltos intermedios" como ya mencionaba inicialmente,
y la 2da fue conviertiendo los "saltos provocados por condiciones", por "condiciones que llaman a procedimientos" (es decir cambié muchos JNZ por CALL).

De hecho me ha llevado bastante tiempo hacer esa conversión para que todo funcione entre procedimientos, ya que algunas cosas no podían simplemente cambiarse, o bien resultaban generando bucles infinitos. Usé varios RET para lidiar con eso. Y como todo funciona bien me parece que no hay restricción en los CALL, es decir, pueden invocarse procedimientos que se encuentrán muy lejos del lugar de donde se invoca.

Lo que aún no estoy seguro es qué ocurre si nunca escribo RET en un procedimiento, ya que la estructura normal tengo entendido que es esta:
Código
  1. NOMBRE PROC NEAR
  2.  ; Código
  3.  RET
  4. NOMBRE ENDP

Si no uso RET la secuencia de ejecución ya no se devuelve al lugar de donde se invocó el procedimiento NOMBRE, entonces acaba la ejecución de ABC?
Considerando que ABC es un procedimiento que invoca a NOMBRE.

O continúa ejecutando los procedimientos que están debajo de NOMBRE como producto de no haber encontrado RET?

O tal vez eso resulta en un error porque no encontró RET y encontró ENDP  :-X

Gracias, y espero que puedan ayudarme nuevamente con esta duda.
46  Programación / ASM / Consulta sobre condiciones y saltos en: 17 Mayo 2014, 05:40 am
Bueno, luego de haber aprendido un poco más acerca de las instrucciones y direccionamiento conseguí escribir un programa para graficar una circunferencia y hacer que esta se desplace... y funcionaba perfectamente hacia la derecha e izquierda.
El problema es que luego de agregar desplazamientos hacia otros lados me apareció este error:
Citar
Relative jump out of range by 002Bh bytes

Conseguí solucionarlo agregando saltos intermedios pero el programa no está tan claro como antes justamente por agregar esos "medios saltos", ¿existirá otra forma de manejar ese error?
Tal vez alguien quiera recibir mi código para ayudarme a ver cómo evitar saltos tan largos :S

Gracias de antemano.
47  Programación / ASM / Re: Insertar $ en un LABEL BYTE en: 11 Mayo 2014, 22:10 pm
¿Cuál sería el significado de r/m, Sreg, imm y  moffs?

O tal vez pueda decirme cuál de estos se corresponde con alguno de ellos  :silbar::
Código
  1. [BX]
  2. DOLAR
  3. CADE[DI]
  4. BX
  5. AL
48  Programación / ASM / Re: Insertar $ en un LABEL BYTE en: 11 Mayo 2014, 17:22 pm
Ya me funciona, de la forma en que escribí la última vez, pero... ¿por qué no funciona si en vez de poner el caracter directamente uso el nombre de una variable DB?
Código
  1. CALL INGRESO   ; Lectura de cadena
  2. LEA BX,CADE            
  3. ADD BL,ACTUAL        
  4. MOV [BX],DOLAR

Me indica "Need register in expression" en la última línea, y lo mismo si cambio la última línea citada por:
Código
  1. MOV [BX],BYTE PTR DOLAR
Código
  1. MOV BYTE PTR[BX],DOLAR

Por otra parte he intentado:

Código
  1. MOV CADE[ACTUAL],DOLAR
Y supongo que esto falla porque no puedo usar una variable dentro de los corchetes. Sólo acepta DI, SI, BX o BP, ¿verdad?

Código
  1. MOV DI,ACTUAL
  2. MOV CADE[DI],DOLAR
Luego intenté esto y también resulta en error, debe ser porque DI y ACTUAL tienen tamaño distinto. Y por eso mismo tampoco funciona cuando a DI le asigno 0 y trato de usar ADD para sumarle ACTUAL.

Esto sí que funciono, pero no quedó en una línea como creí que podría hacerse:
Código
  1. MOV BX,0
  2. ADD BL,ACTUAL
  3. MOV CADE[BX],BYTE PTR "$"

Lo que no entiendo es porqué en ningún caso puedo usar DOLAR, si supuestamente ya ha sido definido como dato de un solo byte...
49  Programación / ASM / Re: Insertar $ en un LABEL BYTE en: 1 Mayo 2014, 18:06 pm
Muchas gracias por la ayuda.

Con esto conseguí que funcionara:
Código
  1. CALL INGRESO   ; Lectura de cadena
  2. LEA BX,CADE     ; Cargamos dir de inicio
  3. ADD BL,ACTUAL ; Se le suma el valor de ACTUAL
  4. MOV [BX], BYTE PTR "$"

Antes en BX cargaba la dirección de inicio del LABEL BYTE. De ese modo apuntaba a TOTAL y le seguía ACTUAL, al sumarle 3 (cuando ingresaba la cadena "123") quedaba apuntando al número 2 y luego sobre éste ingresaba el "$". Por eso se mostraba sólo el 1 y se perdían 2 caracteres.

Cambié CADENA (nombre del label byte) por CADE (dir de inicio desde donde se empieza a almacenar la cadena) y ya funciona.

Mi duda sería acerca de BYTE PTR:
[BX] que es el desplazamiento destino, ¿no hace referencia a un byte?
Y el símbolo de $ al igual que otro caracter es también un byte, ¿verdad?
Supuestamente ambos operandos son de 1 byte y no debería ser necesario escribir BYTE PTR, o eso creo.
50  Programación / ASM / Re: Insertar $ en un LABEL BYTE en: 1 Mayo 2014, 17:37 pm
Me indicaba este error:
Código:
Argument needs type override
En esta línea:
Código:
MOV [BX],"$"

Cambié la línea por:
Código:
MOV BYTE PTR[BX],"$"
Y ya compila sin problemas, pero al mostrar la cadena no muestra sus 2 últimos caracteres. Es decir, ya no se sobrepone a los caracteres al inicio de la línea, pero la cadena ingresada aparece cortada en 2 caracteres.

Creí que [BX] haría referencia al retorno de carro y que lo reemplazaría por $.
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines