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

 

 


Tema destacado:


  Mostrar Temas
Páginas: 1 [2] 3
11  Programación / ASM / Insertar $ en un LABEL BYTE en: 1 Mayo 2014, 16:21 pm
En el DATA SEGMENT se tiene la declaración de algunas cadenas y además:
Código
  1. CADENA LABEL  BYTE
  2. TOTAL DB 21
  3. ACTUAL DB ?
  4. CADE DB 21 DUP(?)
  5.  
  6. ; Escribimos 21 ya que el ENTER ocupa un byte.
  7. DOLAR DB "$"
  8.  
  9. CADINV DB 21 DUP(?),"$"
CADINV es donde pretendo guardar la cadena ingresada luego de ser invertida.
De momento el programa lee una cadena en un LABEL BYTE y muestra un mensaje diciendo "LA CADENA INGRESADA ES: " y la cadena misma de forma correcta.

El problema ocurre cuando se ingresan menos de 20 caracteres. Ya que hay un retorno de carro que hace que el cursor regrese al inicio de esa línea y continue escribiendo los caracteres faltantes (que no fueron ingresados) y borre parte del mensaje, pudiendo quedar por ejemplo "ENA INGRESADA ES: ".

En mis primeras clases vimos un poco acerca del debug.exe donde agregábamos instrucciones una por una. Y como en el foro me explicaron que podía usarse para analizar los programas, intenté hacerlo y allí fue cuando supe que el caracter era el retorno de carro.

Lo que quiero hacer es usar el byte llamado ACTUAL (en realidad no sé cómo referirme a los DB, ¿decir que son variables?) y allí mismo asignar el $, es decir, ya no esperar necesariamente al final de los 21 caracteres.
Pero según estuve viendo ACTUAL guarda un número, por ejemplo 11 y no un desplazamiento.

Entonces intenté esto:
Código
  1. CALL INGRESO   ; Lectura de cadena
  2. LEA BX,CADENA
  3. ADD BL,ACTUAL
  4. MOV [BX],"$"

Se llama al procedimiento para leer la cadena, luego pretendí asignar a BX el desplazamiento del LABEL BYTE y sumarle la posición actual para luego a ese desplazamiento asignarle "$". Pero no funciona.

Por favor, espero que puedan ayudarme. Mi principal problema es que no reconozco aún muy bien qué es lo que se asgina y puede asignarse entre los registros y las variables.

Gracias de antemano.
12  Programación / ASM / Pregunta simple sobre registros en: 19 Abril 2014, 17:55 pm
Acerca de los registros de 16 bits de "uso general": AX, BX, CX, DX
Y también los demás, como: CS, DS, SS, ES...

¿Existen en general y son usados por cada programa que se ejecuta? ¿O cada programa tiene una sección de memoria reservada sólo para sí mismo y se le asignan sus correspondientes registros?

Uso Windows 7 y usando DosBox puedo acceder a la aplicación debug.exe pero no entiendo qué es lo que sucede cuando modifico los valores de estos registros... quiere decir que si estoy usando un programa el programa modificará los valores de los punteros para ejecutar su código correspondiente? y por tanto habría error si ejecuto un programa y simultáneamente cambio los valores de los segmentos...

Y si cada programa tiene su respectiva segmentación, entonces qué es lo que modifico con el debug? los registros asignados para el programa "debug"?

La verdad me resulta muy confuso. Por favor espero que puedan ayudarme a entender mejor este tema.
13  Programación / Desarrollo Web / Insertar código HTML sin ser interpretado en: 17 Abril 2014, 00:27 am
Recuerdo que para insertar código HTML en una página se tenía que cambiar los paréntesis angulares <, > por caracteres un tanto extraños, para que no sean asumidos como tal en el código si no que aparezcan escritos en la página misma.

¿Necesito hacer esto siempre con el código?
Tal vez conozcan alguna mejor manera de hacerlo.

He buscado en google pero las entradas no son justamente lo que pregunto.
Gracias de antemano.
14  Programación / ASM / Consulta sobre máquinas virtuales en: 9 Abril 2014, 00:36 am
Estoy llevando un curso sobre "Procesadores digitales" y el profesor nos comentó que en la 1ra unidad veríamos un poco del lenguaje ensamblador (que creo que es ASM, de assembler, y por ello publico acá).

Bueno, nos dijo que no es posible ejecutar el Debug en Windows 7, ya que sólo hasta Windows XP es posible usarlo, y que deberíamos instalar una máquina virtual en la que tengamos XP para poder seguir las clases.

El punto es que, según me comentaron, si instalo una máquina virtual voy a tener que compartir recursos a ese 2do sistema operativo y mi computadora estaría funcionando a una velocidad menor. ¿Qué tan cierto es esto? ¿La velocidad se reduce a la mitad?

Por otro lado, hoy en la primera clase, usamos computadoras con Windows 7 y allí mismo ejecutamos el Debug. El profesor dijo que instalaron una aplicación que hacía eso posible (y no se trataba de una máquina virtual). ¿Cómo podría hacer eso?
Cuando le preguntaban decía que teníamos que instalar una máquina virtual... nadie preguntó sobre esa aplicación que permitía ejecutar Debug sin una máquina virtual (por alguna razón no lo decía). Iba a preguntarle yo pero la verdad es que por falta de tiempo preferí no interrumpir y tratar de entender lo tanto que él trataba de explicar... y luego tuve que salir rápidamente hacia mi clase siguiente.

Entonces tal vez alguien conozca acerca de esto y pueda ayudarme. Gracias de antemano.

EDIT: He estado buscando por internet y veo que existe una aplicación "WinDbg" pero según la descripción permite encontrar errores en programas. Creo que eso es más complejo. Al menos tengo entendido que nosotros sólo ejecutaremos algunas instrucciones al procesador directamente. Además una captura de pantalla muestra un programa con interfaz gráfica, y el Debug debería ser solo consola.
15  Programación / Java / Sobre buenas prácticas de programación en: 14 Marzo 2014, 19:49 pm
En C++ no llegué a usar mucho clases y objetos, más que todo usaba funciones que se llamaban entre sí o que eran recursivas.

En Java, digamos que ya he usado la POO como tal. Entonces, en muchas ocasiones pude reutilizar código sin tantas complicaciones, a través de herencia y polimorfismo. Incluso creo que comencé a utilizar mejor los métodos, y a crearlos siempre que fuese conveniente.

Ahora me encuentro con una situación un tanto particular, en la que me he detenido por pensar qué es lo mejor que puede hacerse.

Tengo un método agregarProducto en una clase que gestiona un listado del mismo.
Aquí se tienen las restricciones para los atributos ingresados. Si hubo error, el producto no se agrega al listado y se devuelve una advertencia como String. Si no hubo error, el producto es agregado y se devuelve null.

Ahora he querido agregar un método modificarProducto. A éste se le pasa la posición del producto a modificar (existe un método que devuelve la posición de un producto buscándolo por su código) y los atributos que deben asignarse.

Creo que lo más correcto es copiar el código de agregarProducto pero cambiar las líneas en las que se agrega... es decir, cambiar el add por un set (el listado es un ArrayList). Así, modificar también devuelve una advertencia, y si no la hay, devuelve null.

Pero me pareció extraño copiar el código ya que no lo hacía por un buen tiempo, y pensé en lo siguiente:

1. Podría hacer que agregarProducto llame a modificarProducto y que en vez de pasarle una posición intermedia, le pase la última posición+1. Pero podría darse el caso de que no se haya reservado memoria para tal posición aún.

2. Podría hacer lo anterior pero en el método modificarProducto evaluar si la posición es mayor a la longitud actual del ArrayList. De ser así agregar (usar add), sino, modificar (usar set).

3. Que agregarProducto se mantenga tal cual pero modificarProducto llame a agregarProducto. En caso de que se haya agregado, pasar ese objeto a la posición que se quiere modificar y luego eliminar la última posición. Así modificar ya no tiene el mismo código (no tendría que copiarlo) y se modificaría la posición deseada con datos correctos. Lo malo es que estoy haciendo operaciones adicionales.

A fin de cuentas, es mejor a veces copiar el código que tratar de no hacerlo y complicarse en vano, ¿verdad?
Además, más líneas de código pueden estar más optimizadas que otras muy pocas.

A veces me pasa esto, que me lío en vano, pudiendo simplemente avanzar con el programa y no detenerme a pensarlo tanto.

Edit: Muchas gracias por su interés, espero que puedan ayudarme un poco comentando cómo creen que es conveniente hacerlo.
16  Programación / Java / Consulta sobre JMenuBar en: 13 Marzo 2014, 17:29 pm
A este componente le puedo agregar varios JMenu y a cada uno de estos sus correspondientes JMenuItem, pero si lo que deseo es agregarle botones al JMenuBar, ¿cómo puedo hacerlo?
Porque recuerdo haber visto un menú que además de tener opciones escritas en texto presentaba botones a modo de imágenes pequeñas (tampoco tan pequeñas como íconos, sino de 60px aproximadamente).

Gracias de antemano, espero que puedan ayudarme.
17  Programación / Java / Acerca de JFrame usando Netbeans en: 9 Febrero 2014, 19:53 pm
He creado un programa con interfaz gráfica usando Netbeans pero sin usar el asistente para crear GUI.
En dicho programa (escrito a puro código) he usado colores que ya vienen predefinidos... como CYAN, BLACK, WHITE de clase Color. Pero recordé que hay otros tipos de colores que también están predefinidos, y como no sé cómo agregarlos, he creado un JFrame Form con el asistente para asignar tal color, luego ver el código y copiarlo a mi programa que está sin el asistente.

Lo malo es que, lo que se muestra en la vista de diseño no es lo mismo a lo que se ejecuta:



¿A qué podría deberse?

He buscado en el código, y lo que se ha autogenerado es:
Código:
jPanel1.setBackground(javax.swing.UIManager.getDefaults().getColor("nb.output.selectionBackground"));
18  Programación / Java / Cómo crear este tipo de tablas en: 8 Febrero 2014, 01:10 am
Creo que es bastante extenso el código para usar títulos en columnas y filas, por eso estaba pensando en usar un GridLayout en vez de tablas.
Pero no estoy muy seguro de cómo hacer esas particiones. Como se observa en la imagen, cada celda presenta dos datos, sólo que el espacio no está igual de dividido.
19  Programación / Java / Sobre lectura de varios datos a la vez en: 7 Febrero 2014, 00:27 am
El método showInputDialog de JOptionPane permite leer un único dato. Si son varios usualmente uso un bucle, pero quiero leer datos de a pares porque están relacionados. Y si se lee por separado, podría confundir al usuario.
Estaba creando una clase que herede JFrame y pregunte todas las preguntas que yo le indique, es decir, presente varios JLabel y JTextField según la cantidad de preguntas.
El punto es que, no sé cómo hacer para que devuelva los datos leídos luego de presionar un botón que incluí en el mismo JFrame hacia otro programa que también se está ejecutando y se encargó de crearlo :S
20  Programación / Java / Consulta sobre JTable en: 4 Febrero 2014, 14:16 pm
He visto que en los JTable es posible agregar datos en las celdas o bloquearlas, pero que aparte de eso, aparecen títulos en las columnas (con un fondo distinto al de las celdas). ¿Es posible agregar además títulos a cada fila?
Es decir, es como crear un cuadro de doble entrada. Quisiera lograr que los datos de calda celda se correspondan con un título de fila (origen) y un título de columna (destino) para organizar datos.
Páginas: 1 [2] 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines