• Domingo 15 de Diciembre de 2024, 06:35

Autor Tema:  Re: AYUDA CON EL USO DE INTERRUPCIONES EN C  (Leído 2125 veces)

fabet

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: AYUDA CON EL USO DE INTERRUPCIONES EN C
« en: Viernes 25 de Abril de 2003, 21:00 »
0
¡AYUDA POR FAVOR!

Necesito hacer un programa que me indique cuanta memoria total y cuanta memoria disponible se tiene.
Por lo cual yo estoy utilizando interrupciones  en específico la 12h del bios , pero no se cómo es su correcta sintaxis .
Hice un código que necesito saber si esta bien me podían ayudar revizandolo e indicandome en que esta mal  porfavor.
El código es el siguiente:

#include<dos.h>
#include<stdio.h>
#include<stdlib.h>
main(void)
{
union REGS r;
r.h.ah=0;
r.h.al=1;
int86(0x12,&r,&r);
printf("El numero de kilobytes de RAM es %ld",&r);
getche(); }

Por favor , les agradecería su pronta respuesta, porque ya no tengo mucho tiempo. Si tuvieran unos ejemplos que me ilustren mejor , por favor me los pueden mostrar. Muchas gracias.
Les mando un saludote . Bye.
 
:good:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: AYUDA CON EL USO DE INTERRUPCIONES EN C
« Respuesta #1 en: Viernes 25 de Abril de 2003, 21:42 »
0
Estabas imprimiendo mal, no lo he probado porque ahorita estoy algo embolatado, me cuentas please.

 
Código: Text
  1.  
  2. #include<dos.h>
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5. main(void)
  6. {
  7. union REGS r;
  8. r.h.ah=0;
  9. r.h.al=1;
  10.  
  11. int86(0x12,&r,&r);
  12. printf("El numero de kilobytes de RAM es %d",r.eax);
  13. getche(); }
  14.  
  15.  


juank

suerte
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

misterwilliam

  • Miembro MUY activo
  • ***
  • Mensajes: 291
    • Ver Perfil
Re: AYUDA CON EL USO DE INTERRUPCIONES EN C
« Respuesta #2 en: Sábado 26 de Abril de 2003, 02:50 »
0
Amigo fabet, ya probé el siguiente código y me resultó mostrándome 640K de mi máquina.
__________________________________________________________________

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<dos.h>
void main()
{
union REGS r;
r.h.ah=0;
r.h.al=1;

int86(0x12,&r,&r);
printf("El numero de kilobytes de RAM es %d",r);
getche();

}

_________________________________
El error que dijo Juank es cierto, al imprimir, después del símbolo % debe ir d y no Id.
Un detalle es que después del mensaje debe ser r en vez de r.eax pues no se reconoce dentro de la estructura REGS y que omitió las librerías en el include (imagino que por el afán que comentó).
No sé mucho, tan sólo probé y resultó. Por favor cuéntenos como le fué.

Chao! :clown:
¡ Todo está en la mente !

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: AYUDA CON EL USO DE INTERRUPCIONES EN C
« Respuesta #3 en: Sábado 26 de Abril de 2003, 03:12 »
0
Si, la verdad tampoco trabajo mucho con las interrupciones, solo hace unos años cuando programaba en modo grafico bien por debajo, que me metia mucho con la famosa 13h.

lo de los include es un problema del foro , hablare con solocodigo pues nunca me sale .

suerte.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

fabet

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: AYUDA CON EL USO DE INTERRUPCIONES EN C
« Respuesta #4 en: Sábado 26 de Abril de 2003, 08:28 »
0
Hola:
Gracias por la ayuda , si funciona como dijo misterwilliam pero , el resultado que obtuve fue de 640 K , sin embargo no sé si es correcto ya que se supone debe ser el mismo valor que el sistema da , porque mi maquina según es de 312Mb de RAM, ¿Qué opinan ustedes?
Existe algún error o no. ¿Cuál es el detalle?
:oops:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: AYUDA CON EL USO DE INTERRUPCIONES EN C
« Respuesta #5 en: Sábado 26 de Abril de 2003, 20:04 »
0
El programa esta bien, lo que sucede es que la bios te devuelve los 640 k de memoria de sistema, es decir no tiene nada que ver con los dispositivos adicionales de memoria que le coloques en los slots, asi aunque tengas 128 mb de ram te va a devolve esos 640k o un valor diferente dependiento del tipo de maquina.
Seguramente que hay una forma de obtener la cantidad de memoria total, pero no debe ser con esa interrupcion.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

fabet

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: AYUDA CON EL USO DE INTERRUPCIONES EN C
« Respuesta #6 en: Lunes 28 de Abril de 2003, 06:36 »
0
Hola :

De nuevo soy yo, ahora es una pregunta hacerca de como puedo determinar la memoria ocupada , y cómo desplegar el mapa de memoria en pantalla , alguien tiene una idea ,por favor si tienen un ejemplo les agradecería me lo proporcionaran, por favor porque en unas cuantas horas tengo que entregar este programa , ¡auxilio!
:ayuda::think:

fabet

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
AYUDA CON EL USO DE INTERRUPCIONES EN C
« Respuesta #7 en: Domingo 4 de Mayo de 2003, 06:37 »
0
Gracias a todos los que me ayudarón con este problema , sólo les informo que si pude concluir mi programa a tiempo y bien .
De nuevo muchas gracias a misterwilliam y a Juank , por haberse tomado la molestía de leer este mensaje.
Saludotes desde México D.F.
:good: