Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - Astor
101
« en: Jueves 13 de Febrero de 2003, 22:04 »
Con que modelo de segmentacion estas compilando el programa ? Probaste con huge ?
Si no, no va a quedarte otra que hacerlo en modo protegido, ya que en modo real como maximo dispones de 640K.
102
« en: Jueves 13 de Febrero de 2003, 22:02 »
No entiendo del todo aun, si bien comprendo el significado de la fila de un ejecutable no logro hacerlo con el de columna (???). Podrias por ejemplo entre cada linea incrementar una variable, mejor dicho un puntero que guardas en cierta zona de memoria (por lo que si se incrementa desde la primera linea, va a contener el numero de linea que se esta ejecutando). El otro programa deberia acceder a la zona de memoria donde lo guardaste y de ahi leer por que linea va.
Podrias usar un grupo de bytes del vector de interrupcion que no esten utilizados (esto siempre y cuando trabajes en modo real).
103
« en: Jueves 13 de Febrero de 2003, 04:21 »
Podrias explicarte nuevamente ya que, sinceramente, no logro comprender tu necesidad.
104
« en: Jueves 13 de Febrero de 2003, 04:18 »
Mira puede que un programa que suma numeros tarde bastante menos de unos segundos con lo que con esas funciones de bios quedas imposibilitado. Deberias recurrir a utilizar el 8254 con el cual podes contar de micro segundos.
105
« en: Sábado 8 de Febrero de 2003, 21:26 »
Tasm programa.asm Tlink programa.obj
En vez de tasm y tlink usa los nombres del compilador/linker que tengas.
106
« en: Sábado 8 de Febrero de 2003, 20:59 »
Se ejecuta 18.2 veces por segundo porque la cuenta cargada en el Timer0 del 8254 (colgado de la IRQ 0 del 8259) esta cargado con 0xFFFF . Si bajas ese numero conseguis bajar la base del timer.
107
« en: Sábado 8 de Febrero de 2003, 20:54 »
Si tenes razon, explique todo al reves. Deben ser los efectos del alcohol, menos mal estabas para rectificarme.
Gracias y saludos.
108
« en: Miércoles 5 de Febrero de 2003, 18:17 »
Con un unsigned long te alcanza. Si la longitud de estos es de 4 bytes podrias llegar a representar hasta 4 GB. El maximo numero de 8 digitos es 99.999.999 con lo que con el long quedas perfectamente cubierto.
109
« en: Miércoles 5 de Febrero de 2003, 18:14 »
Mira si necesitas ver las particiones si o si vas a tener que ir al BIOS como minimo, pero te vas a llevar un lindo chasco cuando tengas que aprender el manejo del bootsector y las tablas de particion. Si no sabes mucho eso lo dejaria.
Para explorar otros dispositivos recurriria al sistema operativo ya que si saltas directo al bios vas a tener que estudiarte el filesystem de cada dispositivo y leerlo a pedal. Por ejemplo si usas DOS recurri a las subfunciones de la int 21h o si bien lo estas haciendo bajo linux lo hagas con sus llamadas al sistema definidas en unistd.h y fstat.h
110
« en: Miércoles 5 de Febrero de 2003, 18:08 »
Yo en tu lugar utilizaria haria una ISR (rutina de atencion de interrupcion) y la colgaria de la INT 8 (IRQ 0) la cual interrumpe cada 55 ms. Como probablemente esa base sea muy grande para vos deberias reconfigurar el 8254 (en modo 3) y cargar el contador con una base menor (la base mas pequeña en este counter son 839 us).
Es la mejor solucion que hay, eso solo si estas haciendolo sobre DOS o algun OS en modo real.
111
« en: Miércoles 5 de Febrero de 2003, 18:05 »
No alcanza con sumarle o restarle 48 para pasar de Hexa a Decimal o viceversa. Eso solo sirve para un solo digito. Si alguien ingresara el string "432"
Deberias comenzar a hacer divisiones sucesivas, por ejemplo por 100(luego de obviamente haber restado 48d a cada digito caracter). El resultado va a ser 4 y el resto 32. A ese 4 lo multiplicas por 100 y lo pones en un registro. EL resto (32) lo divis por 10 ahora, y al resultado, 3, lo multiplicas por 10 y se lo sumas al registro que contenia el 400. Asi seguis hasta que dividis y multiplicas por 1.
Si vas a trabajar con numeros de 16 bits por ejemplo deberias comenzar a hacer las divisiones sucesivas arrancando por 10.000
Al terminar vas a haber hecho algo similar a la funcion Atoi de C.
112
« en: Miércoles 5 de Febrero de 2003, 18:00 »
Podes conseguir por la web el TASM (Turbo Assembler) o si no el MASM de Microsoft gratis (las ultimas versiones)
Gralmente si el programa corre en modo real basta con escribir tasm (o masm) nombre.asm
y luego linkearlo con tlink (o link en masm) y listo.
Si aclaras la plataforma sobre la que estas, seria mejor aun.
|