Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - MRx86

#71
Hardware / [duda] vector de interrupcion
12 Febrero 2017, 06:20 AM
Hola buena noche, tengo una pequena duda sobre el vector de interrupciones; cuando un dispositivo le avisa al controlador de interrupciones que acaba de terminar lo que estaba haciendo (por ejemplo, un disco avisando que acaba de terminar de escribir en un sector un dato), y este (el controlador de interrupcion) activa el pin de interrupcion de la CPU enviandole a esta (a la CPU) el numero del dispositivo, el OS utiliza este numero como indice en el vector de interrupciones para obtener el manejador (o handler) de interrupciones de ese dispositivo?, o sea cada vez que se inicia un trabajo con un dispositivo se guarda un numero que se necesita para obtener este manejador de interrupcion por la CPU? la pregunta viene de un libro que estoy leyendo y eso nu me quedo muy claro... (pongo eso en negritas para resaltar que esa es la pregunta en si)

Gracias y saludos!.
#72
Hola, mientras mas se lee la historia de esta bella ciencia (la computacion) mas ganas te dan de aprender de ella, creo que es en lo que se parece a las telenovelas mexicanas XD (tienen que admitir que algunas son algo adictivas jejeje). Y he visto que llaman a muchas personas "el padre de la computacion" (alan turing, charles babbage...), sinceramente yo considero tal a charles babbage, ya que fue (segun) el primero en diseñar una computadora, pero creen que este debe ser llamado como tal, o existe alguien que lo merezca mas?

Saludos!!!
#73
Programación C/C++ / ayuda con un codigo
22 Enero 2017, 22:22 PM
hola, estaba haciendo el siguiente programa:



#include  <stdio.h>
#include <stdlib.h>
#include <string.h>

#define STRMAXLEN 256

int convert (char **buffer, const char *src);
int wordsof (const char *src);
int nextstrinstr (const char *str, char *buffer, int *pos);

int convert (char **buffer , const char *src)
{
int words = wordsof (src);
unsigned int i;
int strpos = 0;
char strbuff[STRMAXLEN];


buffer = (char **) malloc (sizeof (char *) * words);

for (i = 0; i < words; i++)
{
nextstrinstr (src, strbuff, &strpos);
strcpy (buffer[i], strbuff);
}

return words;
}

int wordsof (const char *src)
{
unsigned int i, num = 0;

for (i = 0; i < strlen (src); i++)
if (src [i] == ' ') num++;

++num;

return num;
}

int nextstrinstr (const char *str, char *buffer, int *pos)
{
//iterador sobre la cadena str
unsigned int i = *pos;

//iterador sobre la cadena buffer
int j = 0;

for (i, j; str [i] != ' '; i++, j++)
{
buffer [j] = str [i];
}

buffer [j] = '\0';

++i;

*pos = i;
return j;
}

int main ()
{
const char *s = "cadena_uno cadena_dos cadena_tres cadena_cuatro cadena_cinco";
char **ss;

convert (ss, s);
}



y bueno esto es lo que hace (al menos lo que deberia hacer):

simplemente convierte de un puntero a una cadena de caracteres, a un puntero a punteros a cadenas de caracteres (casi como el metodo split de python, la diferencia es que el de python si funciona correctamente jaja..).

lo que deberia hacer es que desde la cadena



const char *s = "cadena_uno cadena_dos cadena_tres cadena_cuatro cadena_cinco";



genere la cadena

Código (cpp) [Seleccionar]


char **ss = {"cadena_uno",
                    "cadena_dos",
                    "cadena_tres",
                    "cadena_cuatro ",
                    "cadena_cinco"
                    };



pero me lanza el codigo de error 255 (lo busque en google y no aparece nada, aparecen cosas que no son)

espero que me puedan ayudar...

pd: el compilador es dev-c++ y el OS es Windows 10.

Saludos.
#75
Hola, queria saber si estoy en lo correcto; un SAP es un identificador hacia el serivicio (un navegador por ejemplo) al que va destinado un PDU?

Gracias y saludos..
#76
Hola, bueno en wikipedia y en un libro que se llama "comunicaciones y redes de computadoras" de william stalling, 7ma edicion (muy bueno, se consigue muy facil en internet) vi que en las redes ATM se utilizan paquetes de longitud fija (53 bytes) y esta es mi duda: si quiero enviar un paquete de 1kb, el paquete se particiona en porciones de 53 bytes para ser enviado? Y los bytes sobrantes (1 KB mod 53 B = 17 B), se envian igualmente en una celda rellenando los 36 bytes sobrantes con 0?

Gracias y saludos.
#77
Tu blog se ve muy interesante, si tienes razón en Internet se encuentra muy poca documentación sobre ese tipo de ensamblador, siempre ese condenado 8086, que Internet no entiende que ya nadie lo utiliza??? XD.

Saludos y gracias por tu ayuda!!
#78
Hola, no uso mucho el "lenguaje" ensamblador y cada vez que intento estudiarlo por internet (intento buscar libros o manuales un poco más "avanzados" que los que se suelen encontrar en internet (esos que no hacen más nada que explicar la arquitectura del Intel 8086) cuando busco algo más hacia el i386, en si me salen cosas muy "basicas". Por cierto, por favor si alguien conoce algún sitio web o libro para buscar en PDF que explique un lenguaje ensamblador que no haya sido desarrollado antes del año 1985 (i386 o i486), estaria muy agradecido  :-\. Pero la pregunta en si es la siguiente:

Yo sé que el código de C:


unsigned int a;

int main()
{
   a = 1;
   return 0;
}


Se puede traducir a asm  i386 como:

a dw 0
jmp start

start:
mov a, 1
ret

Pero un código así:


unsigned int a;

int main()
{
   int b = 0;
   b = 1;
   a = 1;
   return 0;
}


Si las variables globales se declaran

<Nombre> dw <valor>

Como se declara una local ya que se declara metiéndola en el stack?, Así?:

A dw 0
jmp start

start:
mov a, 0

;Así se declararía la variable (b)?
mov ax, 0
push ax

;Y cuando se quisiera acceder a ella se haría algo asi?:
mov ss:[bp+sp], 1; b = 1


Pd: necesito aprender sobre compiladores...

Saludos
#79
Hablas enserio? Obviamente es necesario, primeramente, sabes para qué se creó la primera computadora (o al menos hasta donde se) ? Para cifrar, y sabes cómo se cifra? Con algoritmos matematicos. Programación? (Sin mencionar que la vas de un programa son los algoritmos matematicos que lo componen) Muéstrame un códig de ensamblador que no realice una operación matemática fundamental (suma, resta, multiplicación o división), si es que lo encuentras... Mientras más te adentras en la informática (sobre todo si quieres conocer bien el hardware, cuando digo "bien" me refiero a cómo funcionan los circuitos internos (electrónica) del mismo hardware), te vas a encontrar con la mera necesidad de conocer teoremas y mucho, muchísimo más. Cuando aprendas a programar (si es que no sabes) sabrás de lo que hablo..

Saludos!!, Y si te gusta esto de la informática, o seguridad informática, tranquilo si se te hacen difíciles algunas areas (cómo la matemática, fundamental el la informática por cierto) es porque seguramente no estas acostumbrado o t falta práctica.
#80
Hardware / duda sobre la memoria DRAM
4 Enero 2017, 04:10 AM
hola, queria preguntar, porque el nombre de "memoria dinamica" porque es "dinamica", tiene que ver en algo con que sus celdas de memoria tienen condensadores?


saludos.

edito: ya se que es, se llama "dinamica" porque las celdas de memoria tienen que estar en constante (dinamico) refresco.