Ensamblador - Lio con 32 bits o 16 bits

 
Vista:

Lio con 32 bits o 16 bits

Publicado por Yaron (5 intervenciones) el 03/06/2004 19:14:52
Estoy empezando con la programacion en ensamblador y en los manuales que leo solo comentan cosas sobre instrucciones para MS-DOS todo el rato. Queria saber que diferencia un programa para MS-DOS de uno para Windows. No se si cambiaran las instrucciones o si tiene que estar obligatoriamente anidado en otro programa de C, etc.

Estoy un poco liado, ¿se nota?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Lio con 32 bits o 16 bits

Publicado por Jorge (126 intervenciones) el 03/06/2004 21:07:53
Bueno,

el ASM es el ASM, en DOS, Windows ó Linux. No cambia. Lo que sí es cierto es que para hacer una ventana en Windows, por ejemplo, no tenés la necesidad de programarla de cero, porque si vas a hacer eso, ¿qué gracia tiene?. Windows (y linux, etc) tiene ya construida toda una estructura que crea la ventana y la implementa a través de un conjunto de rutinas que llama API (Application Programming Interface). Ahora, si pensamos que la rutina ya está construida, es lógico además que tenga definidos los parámetros que toma y el tipo de los mismos. Esto implica que cuando vayas a programar un ventana en Windows tengas que emplear esa rutina y adaptar e inicializar los datos de acuerdo a lo que requiere esa función. Esta es la diferencia fundamental de la construcción de programas DOS y Windows. En DOS vos hacias todo (pero TODO) como querías y en Windows reutilizas lo que ya trae el sistema operativo. Sin embargo para hacer uso de esas cosas hay que "sacrificar" cierta libertad.

Después, lo que sabés lo podés usar. Lo que pasa que vas a encontrar muchos casos como este que te mencioné, que te van a obligar a usar ciertas cosas y hacer un código menos ASM y más API. Por eso antes de empezar con esto, conviene leer un poco sobre la arquitectura de windows, que se basa en un sistema de "mensajes" entre los programas, el sistema operativo y demás.

Otra cosita más, no confundas 16 bits = DOS y 32 bits = Windows; porque si bien es cierto que la mayoría de los programas de DOS eran de 16 bits y casi todo lo de Windows es de 32 bits, no es necesariamente un sinónimo.

Un saludo y ojalá te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Lio con 32 bits o 16 bits

Publicado por jojojo (1 intervención) el 04/06/2004 17:36:09
...a ver si a alguien de unos pocos posts más abajo le parece bien esa explicación. yo casi que paso del tema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Lio con 32 bits o 16 bits

Publicado por Liebesschmerz (25 intervenciones) el 11/06/2004 08:03:48
una de las cosas que cambia es el modelo de memoria que se usa.
en Win32 solo hay un modelo de memoria, el cual es el modelo plano (flat),.
en el modelo plano ya no te tienes que preocupar por los segmentos de registro, ya que todos apuntan a un mismo lugar, y el desplazamiento es de 32 bits.
y despues solo tienes que cambiar las interrupciones por la API, y solo necesitas aprenderte los nombres de las funciones, pero es lo mismo casi y no hay complicacion en eso.
las interrupciones son funciones y las APIs tambien, lo que cambia es el modo en que pasas los parametros.


asi ya no tienes que usar los segmentos de memoria, ya que todos los segmentos seran inicializados en
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar