• Domingo 22 de Diciembre de 2024, 13:24

Autor Tema:  Inicializar Una Variable E Imprimirla  (Leído 1669 veces)

tirengarfio

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Inicializar Una Variable E Imprimirla
« en: Sábado 1 de Diciembre de 2007, 20:55 »
0
Saludos,

este codigo de aqui abajo creo que inicializa la variable dato1 a 23, ¿es correcto?

Código: Text
  1.            DOSSEG
  2.            .MODEL SMALL
  3.            .STACK 100h
  4.            .DATA
  5. dato1  DB 35h
  6.            .CODE
  7.  
  8.  
  9. INICIO:
  10.         mov ax,@data
  11.         mov ds,ax
  12.         mov dato1, 23
  13.  
  14. FIN:
  15.      mov ah,4ch
  16.      int 21h
  17.      END inicio
  18.  


Ahora me gustaria poder sacar por pantalla el contenido de dato1. Tanto el hexadecimal como en binario. ¿Como se hace?

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Inicializar Una Variable E Imprimirla
« Respuesta #1 en: Sábado 1 de Diciembre de 2007, 21:03 »
0
Cita de: "tirengarfio"
este codigo de aqui abajo creo que inicializa la variable dato1 a 23, ¿es correcto?

Le asigna el valor 23 (mov dato1, 23), al declararla la inicializas a 53 (35 en hex) no se con que objeto.

Cita de: "tirengarfio"
Ahora me gustaria poder sacar por pantalla el contenido de dato1. Tanto el hexadecimal como en binario. ¿Como se hace?

Tenes que buscar los servicios que quieras usar (ya sea de la BIOS o de MS-DOS) para imprimir en pantalla (hay servicios para imprmir un caracter o una cadena). Cuando aprendas a trabajar con ellos sabras que lo que usan como input son codigos ASCII en definitiva, entonces sabras que tu numero entero lo tenes que transformar en caracteres para poder mostrar en pantalla.

Hay varios hilos donde ya se habla de este tema en el foro, seguramente te seran de ayuda.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

tirengarfio

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Re: Inicializar Una Variable E Imprimirla
« Respuesta #2 en: Sábado 1 de Diciembre de 2007, 21:34 »
0
Gracias Eternal.

Has escrito:

Citar
Le asigna el valor 23 (mov dato1, 23), al declararla la inicializas a 53 (35 en hex) no se con que objeto.

Con esta linea,

Código: Text
  1. dato1  DB 35h
  2.  

pensaba que estaba creando la variable dato y asignandole una posicion en memoria. Algo asi como reservar memoria para un puntero en C, y que luego con

Código: Text
  1. mov dato1, 23
  2.  


le daba el valor 23. Entonces, ¿no hace falta reservar memoria primeramente?


Segun me dices tambien, la inicializacion la he hecho a 53 en decimal, pero...¿la "h" (53h) que hay detras no indica que la inicializacion la estaria haciendo en hexadecimal?

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Inicializar Una Variable E Imprimirla
« Respuesta #3 en: Sábado 1 de Diciembre de 2007, 21:41 »
0
Cita de: "tirengarfio"
pensaba que estaba creando la variable dato y asignandole una posicion en memoria. Algo asi como reservar memoria para un puntero en C, y que luego con

le daba el valor 23. Entonces, ¿no hace falta reservar memoria primeramente?

Ese codigo es equivalente a declarar una variable global de tipo unsigned char en C.

unsigned char dato1 = 0x35; que obviamente es lo mismo que  unsigned char dato1 = 53;

Con eso tendras un campo reservado en la seccion de datos del programa.

Cita de: "tirengarfio"
Segun me dices tambien, la inicializacion la he hecho a 53 en decimal, pero...¿la "h" (53h) que hay detras no indica que la inicializacion la estaria haciendo en hexadecimal?

No tenes 53h sino 35h que es 53, 53h es 83. Fijate bien eso ya que antes pusiste 10h, eso es 16 y en realidad querias 10 que es Ah.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.