Título: Duda en Ejemplo Publicado por: Binary_Death en 10 Julio 2010, 21:37 pm Verán... he comprado el libro "Ensamblador para DOS, Linux y Windows" de Francisco Charte Ojeda, y estoy cursando el quinto capítulo.
En él, hay el código fuente de un programa en ensamblador y el mismo programa ya compilado. Dicho programa lo testeé en Windows XP y Windows Vista, y en ambos NO funciona. De lo que estoy seguro es de que el ejemplo del libro, definitivamente no puede estar errado. Bien, les comento mi duda. El ejemplo trata sobre el acceso al segmento de pantalla de DOS: 0B800h. En la explicación cuenta que en ese segmento, el desplazamiento 0 contiene el código de carácter a escribir, el 1 el atributo del caracter, el 2 el siguiente código de carácter y el 3 el atributo de éste. Antes de proseguir les dejaré el código de ejemplo del libro: Código:
AX se descompone en AH y AL, que contienen los bits más y menos significativos respectivamente, ¿cierto? Bien, si fuera como el libro dijo, en AH debería situarse el código del carácter y en AL su atributo. Pero no es así, sino al revés. La duda es precisamente esa, ¿por qué? Y no estaría de más que alguien me pudiera decir por qué no me funciona en mi sistema, porque me encataría testear los ejemplos =/ En fin, ¡gracias y saludos! Título: Re: Duda en Ejemplo Publicado por: Debci en 10 Julio 2010, 22:36 pm Se que puede parecer una tonteria mi respuesta, pero no tendra algo que ver little endian?
Saludos Título: Re: Duda en Ejemplo Publicado por: Eternal Idol en 11 Julio 2010, 01:07 am Usa una maquina virtual con MS-DOS, un MS-DOS real o DosBox tal vez, para probarlo.
Tiene que ver que sea little endian: http://en.wikipedia.org/wiki/Endianness Título: Re: Duda en Ejemplo Publicado por: Binary_Death en 11 Julio 2010, 01:20 am Está bien, creo que comprendí.
Si AH vale, por ejemplo, 04 y AL, por ejemplo, FF, al mover esos datos a una posición de memoria, son almacenados en orden inverso, de forma que quedaría FF04h. ¿Estoy en lo cierto? Mmm... eso me pareció entender... Título: Re: Duda en Ejemplo Publicado por: Debci en 11 Julio 2010, 11:07 am Está bien, creo que comprendí. Eso es lo que sugeri pero no me hagas mucho caso, no tengo mucha idea de ASM...Si AH vale, por ejemplo, 04 y AL, por ejemplo, FF, al mover esos datos a una posición de memoria, son almacenados en orden inverso, de forma que quedaría FF04h. ¿Estoy en lo cierto? Mmm... eso me pareció entender... Saludos Título: Re: Duda en Ejemplo Publicado por: Binary_Death en 15 Julio 2010, 22:04 pm En fin, muchas gracias por la ayuda. Imagino que algo así será.
Saludos! Título: Re: Duda en Ejemplo Publicado por: ño_ño en 15 Julio 2010, 22:42 pm Código: mov AX, 0 Eso si, tal vez debas calcular una que otra direcciones de memoria, pero ahi no te puedo ayudar mucho, porque no trato con entorno de OS, y nunca me he interesado por como se debe hacer. |