Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - jacosito

#1
Cita de: theluigy13etv en 23 Febrero 2012, 20:10 PM
He leído que se programaba con unos y ceros y que ese lenguaje se llama Código Máquina. Pero, no lo entiendo. Al leer eso me imagino una computadora en donde hay un teclado con dos botones, el cero y el uno. Luego el programador va ingresando el cero y el uno. Y de forma mágica surge el programa deseado. ¿Alguien me aclara esta idea?

Al comienzo de los tiempos se programaba de la siguiente manera:
Se codificaba los números (normalmente 1 o dos) en una consola
Se cableaba la función que se necesitaba ejecutar
Se obtenía el resultado
Lo anterior demoraba bastante tiempo pero menos que utilizar una regla de cálculo, la gracia consistía en que se podían ejecutar instrucciones con muchos decimales cosa que al regla de cálculo no lo podia hacer.

Después al segundo día:
Se escribían los nemotécnicos de las instrucciones a ejecutar
Se convertían los códigos de las instrucciones a valores decimales
Se imprimían en tarjetas perforadas
Se leían las tarjetas perforadas y se ejecutaban las instrucciones
Se recuperaba el resultado en tarjeta perforada. Muchos después el resultado se mostraba en pantalla.

Al tercer día:
Se utilizaba un editor para escribir los nemotécnicos de las instrucciones
Se ejecutaba un compilador sobre el archivo con los nemotecnicos
Se ejecutaba el linkeador sobre los archivos OBJ
Se ejecutaba la aplicación.

Después al cuarto y demás días, es de todos conocidos.

A mi me tocó programar en nemotécnicos y luego convertirlos a código decimal cada instrucción y luego ejecutar el resultado.

Saludos
#2
Cita de: GADUARD2 en 18 Febrero 2012, 10:12 AM
Bueno, estoy en C#, pero supongo que sera parecido.
Y si, me refiero a si hay alguno superior al long, necesito uno que tenga capacidad para almacenar un numero enorme, como "1x10^40"
lo max que he encontrado es el long, pero me queda corto...

Saben alguna manera de conseguirlo ?

Gracias y saludos

En C# bysca los tipos de datos numéricos y te darás cuenta que hay para valores muchísimos más grandes.

El punto a lo que te refieres tiene dos sabores, por decirlo de alguna manera:
1) Precisión
2) Exactitud

Si necesitas precisión con algunos pocos dígitos tendrás más que suficiente y el exponente te sobrará.

Si necesitas precisión, necesitarás bastantes dígitos y el exponente no será tan relevante.

Qué quiero mostrarte con la anterior: Qué hay tipos de datos para mantener muchos dígitos (Decimal) y otros pocos dígitos y grandes exponentes (double/float, etc).

Saludos
#3
Cita de: RHL en 20 Febrero 2012, 07:36 AM
Hola a todos, bueno tengo una pequeña duda que no es nada sobre codigos ni algo por el estilo
quiza es mas teorico o quiza no :P bueno estaba estudiando los Calls y se me vino a la mente
si los "saltos" de los calls afectan en algo la velocidad con que se ejecuta un codigo...?

digamos que estoy en la direccion 0000 0010 y hay un call a la direccion FFFF 0090 por decir algo, hay alguna diferencia en velocidad si cambia esa direccion de destino? osea que entre la direccion desde donde se "salta" a la direccion a "saltar" afecta
la distancia entre ellas en velocidad?
bueno quiza esto puede o no afectar pero es simple dudilla jeje
Gracias de ante mano!  :-*

Efectivamente, hay saltos largos y cortos y se codifican en la llamada, por ejemplo:
Call short Call far. Normalmente el compilador decide si utilizas solamente Call, lo ideal es forzarlo utilizando short or Far.

Además, JP son saltos de corta distancia y  JMP también se puede forzar a short o far.

Como dice cierto usuario la diferencia es mínima pero cuando se programa en assembler es para utilizar los ciclos eficientemente. De lo contrario sigan utilizando alto nivel al programar.

La forma de programar en assembler es codificar lo requerido y luego optimizar el código en base a los ciclos utilizados por instrucción, mientras menos mejor. Tambien, hay que tener en cuenta que ciertas instrucciones solo permiten la ejecución de una sola instrucción por el procesador; otras instrucciones permiten que el procesador ejecute varias por ciclo.

Saludos
#4
ASM / Re: ayuda memoria virtual
6 Abril 2012, 21:31 PM
Cita de: franfis en 21 Marzo 2012, 17:23 PM
Gracias  ::) creo que mis preguntas son muy minuciosas jeje ..

Cada proceso se carga en varias paginas, cada proceso en memoria tiene sus segmentos de codigo, datos,pila,etc. sin importar en que pagina esta ubicada. ¿cierto?

.data----> en una pagina
.code----> en otra pagina
.ext------>en otra pagina

¿Esto lo puedo probar con el softice? o ¿que herramienta es bueno para averiguarlo yo mismo? Es que intenté instalar softice en mi PC como hace 6 años y me era imposible configurarlo, tampoco habia mucha info.

Graciass otra vez

A ver para aclarar conceptos.

Todavía se utilizan los segmentos y no es cosa del pasado.

La gran diferencia es que ahora los segmentos tienen un tamaño muchísimo mayor a 64KB (anteriores procesadores).

Bien, lo que ocurre es lo siguiente: El código/datos se encuentran delimitados a un segmento y este segmento cuando se carga en memoria, sólo se carga una/varias página(s) en memoria, no se carga todo el segmento en memoria solo la página que se necesite. El tamaño de la página es variable y depende mucho de que tipo de OS  se esté operando, si es base de datos, normalmente la página es de 8KB-16KB, de lo contrario 4KB o menos. La idea es hacer coincidir el tamaño de la página del procesador con la página que se maneja desde el OS.

Ahora, los segmentos se pueden definir de manera tal que sea uno solo pero el problema radica en el segmento de código que no se permite que se auto-modifique.

Ahora, el OS tiene tablas que se inicializaron al start-up y en las cuales se han definido las cosas necesarias para su buen funcionamiento: Tabla de interrupciones, de tareas locales, tareas globales, etc.

Saludos

#5
Mini_Nauta,

Tú profesor se equivoca rotundamente. Dentro de los objetos necesitas codificar y aquí se aplica programación estructurada.

Hay que tener mucho cuidado al opinar y es necesario tener claro las cosas.

Saludos
#6
Creo que no has aprendido nada de c++ ya que con los procesadores modernos se necesitan programadores para programación paralela.

Yo por ejemplo, se programación paralela y no digo que quiero aprender otro lenguaje. Habemos muy pocos que sabemos programación paralela y no somos arrogantes.

Saludos
#7
La forma correcta de hacerlo es de la siguiente manera (el código más abajo es de guía solamente):

En el formulario correspondiente declaras la variable
   private intEstado as Integer = 0

Luego, declaras una propiedad para la variable antes declarada con su set/get.

Ahora, cuando instancias el formulario, a través de la propiedad del formulario asignas el valor a la variable.

Esa es la forma correcta. Recuerda "Orientación a  Objetos".

Saludos