|
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 - Martin Candurra
2
« en: Miércoles 21 de Enero de 2004, 04:00 »
Que clase de assembly es ese ?
3
« en: Martes 13 de Enero de 2004, 03:46 »
Busca de nuevo, porque están los sources del Bash, del PDKSH y TCSH. Además del sh, ush, ash, etc
dale con ganas.
4
« en: Domingo 11 de Enero de 2004, 03:39 »
Mira necesito los datasheets, es decir las hojas de dato que provee el fabricante con la placa de video. El modo VGA puede ser obsoleto en lo que a juegos se refiera, pero yo lo necesito para el control de una consola. Particularmente no logro ubicar el cursor, cuando modifico el offset de la memoria de video de modo texto de 0xB8000 a 0xB8FA0, por ejemplo.
Estoy trabajando directamente sobre el hard y en modo protegido, por lo que no puedo utilizar funciones de BIOS, y no tengo tampoco un sistema operativo debajo.
5
« en: Sábado 10 de Enero de 2004, 05:43 »
Antes que nada disculpen si mi pedido resulta OFF TOPIC, pero como los juegos hacen gran uso del video, pense que alguien podria tenerlo o saber algo de el.
Estoy buscando los datasheets, u hojas de dato del controlador de VIDEO. No se porque, pero no encuentro nada. Alguien que tenga algun white paper de placas de video o del Standar de IBM ?
6
« en: Jueves 8 de Enero de 2004, 16:59 »
7
« en: Miércoles 7 de Enero de 2004, 23:06 »
A que te referís con usando pilas ? No estarás confunciendo pila con lista ?
9
« en: Lunes 5 de Enero de 2004, 14:09 »
if (send(temp_my_socket,system("uname -a"),sizeof(system("uname -a")),0)==-1) No es exactamente a esto a lo que me refería Lo que tenés que hacer es cerrar el descriptor SDTOUT_FILENO (con una llamada a close) y después mediante la llamada al sistema dup, duplicar el descriptor del socket.
10
« en: Martes 23 de Diciembre de 2003, 19:05 »
Leyendo la Guia Beej no vas a tener problemas en implementar una aplicacion cliente servidor. Respecto a los procesos, podes levantarlos con el comando ps con el modificador que gustes, y redireccionar la salida standar del servidor hacia el socket. Es bastante simple, es cuestion de que te sientes a hacerlo. Saludos.
11
« en: Sábado 20 de Diciembre de 2003, 17:42 »
Mira no se si es lo que buscas pero en ese caso, tenes la "suerte" de que los valores por los que preguntas son correlativos en valor ascii. Es decir podrias preguntar tranquilamente
if (H>='1' && H<= '8') { ..... }
En caso de que solo haya sido así tu ejemplo, y no haya ninguna correlación (por ejemplo querrías pregutnar por '1', '4','6','8','a',F','C') podrías armar una función con argumentos variaalbes, que reciba todos los caracteres estilo:
char OR (char val, ... );
12
« en: Viernes 19 de Diciembre de 2003, 19:42 »
La funcion que buscas se llama char *strstr(char *, char *);
13
« en: Viernes 19 de Diciembre de 2003, 13:19 »
Con que fin queres meter texto en la pila ? Que es la pila para vos ? Si definis una variable local en C, esa variable está en el stack. En Asm deberías hacer (sintaxis NASM)
segment STACK comienzo_stack: mensaje_en_stack db 'Este es mi mensaje en el stack',0 largo_stack reserve 128 LARGO_STACK EQU $ - comienzo_stack
Ya tenes el texto que querias en el stack, en el segmento STACK, offset mensaje_en_stack. Cuando quieras llamar a write, por ejemplo: write(fd, void *buffer, size_t len)
En ECX vas a tener que poner la direccion de buffer:
mov ax, STACK mov bx, mensaje_en_stack shl ax, 4 add eax, ebx mov ecx, eax ;Aca tenes la direccion absoluta del string que esta en tu stack en el registro ecx.
La cosa es bastante simple. No logro comprender con que tenes problemas
14
« en: Jueves 18 de Diciembre de 2003, 12:25 »
Hoy fue liberado el 2.6.0 The latest stable version of the Linux kernel is: 2.6.0 Kernel.org
15
« en: Martes 16 de Diciembre de 2003, 18:50 »
Tu problema esta en que a las llamadas al sistema se les pasa via el stack los parametros por REFERENCIA, no por valor. Esa direccion es en la que se encuentra el string que representara el nombre, el cual debera terminar en null ('\0'). Busca un articulo en google llamdado Smashing the stack for fun & profit, en el cual alph1 explica como llamar a exec pasando el argumento residiendo este en el stack. Te lo explicaria, pero estando explicado por un grande, no tiene sentido que repita lo mismo y encima deformandolo.
16
« en: Domingo 14 de Diciembre de 2003, 01:20 »
No entiendo que es que que deseas. Pense que buscabas el codigo fuente de un compilador, no es asi ? Sencillamente clickea sobre el link que postee. Si no es asi, explicate nuevamente.
PD: No me parece correcto que habiendo iniciado un tema en el foro, lo continuemos en forma privada. Puede que tu duda o problema, sea el de otros, por lo que seria injusto que la solucion sea solo para ti.
17
« en: Sábado 13 de Diciembre de 2003, 20:13 »
Simplemente baja los fuentes del NASM
18
« en: Sábado 13 de Diciembre de 2003, 03:46 »
No creo que nadie quiera ni deba hacer tus deberes escolares, porque no contas donde esta la dificultad y ahi vemos ?
TIP: Fijate en que funcion cumple el BIT de carry y que es la instruccion ADC.
19
« en: Viernes 12 de Diciembre de 2003, 18:49 »
Sabes cual es el problema, vos estas haciendo un solo malloc, por lo que basta un solo free para liberar. Si vos hubieras hecho un for(i=0; i<num; i++) bufferfloat+i = (float *) malloc ( sizeof(float));
estaria bien liberar como lo estas haciendo, pero al pedir un solo bloque de tamaño num * sizeof(float) basta con que liberes solo la direccion que obtuviste.
Espero haber sido claro. Saludos.
20
« en: Martes 9 de Diciembre de 2003, 00:06 »
Busca info sobre la INT 0x33 de BIOS.
21
« en: Sábado 6 de Diciembre de 2003, 19:34 »
Que compilador pensas usar ? Cada compilador tiene su propia forma de inline assembly. Si tu opcion es Gcc o DJGPP te dejo este Gcc Inline Assembly
22
« en: Jueves 4 de Diciembre de 2003, 03:15 »
A nivel físico obvio que si, pero por algún motivo raro el así lo desea. Mientras que si de red se trata no influye en nada, ya que los servicios que utilizes tienen su propia protección (no dependen del modo de ejecución).
23
« en: Miércoles 3 de Diciembre de 2003, 10:27 »
Simplemente deberías hacer map = map1; Las formas de manejar un puntero a puntero son varias, entre ellas: *(*(map+x)+y) o map
24
« en: Miércoles 3 de Diciembre de 2003, 10:24 »
Mira la funcion fgets es para trabajar con archivos de texto. Cuando el archivo a leer tiene una estructura del tipo que mostras te conviene guardarlo y leerlo como binario.
Debrías leer sobre las funciones
ssize_t fread(void *p, size_t tamaño, size_t bloques, FILE *); ssize_t fwrite(void *p, size_t, size_t, FILE *);
Donde tamaño debería ser = sizeof(struct clientes); y bloques debería tomar como valor la cantidad de bloques que querés leer de una vez. No te olvides de tener memoria reservada en p, así evitas problemas.
25
« en: Martes 2 de Diciembre de 2003, 16:34 »
Se puede tanto linkear objetos hechos en diferentes lenguajes, como usar dentro del codigo en C mazlcas de assembler. http://www.geocities.com/gccinline/
|
|
|