|
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 - Malik
Páginas: [1]
1
« en: Martes 28 de Abril de 2009, 06:04 »
Gracias por el enlace, su. Lo dejé un poco abandonado esto de python por falta de tiempo, pero en breve vuelvo a darle caña Un saludo
2
« en: Martes 28 de Abril de 2009, 06:01 »
Hablando de páginas web... sabéis de alguna clase en c++ tipo urllib2 en python, o tipo HttpClient en java? Sería para poder conectar a una web (con sus cabeceras y que permita manejar cookies) y descargar páginas a un fichero para despues parsearlas, manejar formularios etc..
Saludos
3
« en: Miércoles 18 de Marzo de 2009, 18:15 »
Tengo esto: return re.sub(r"(d{3}B)", r"1,", str(number)[::-1])[::-1]
De ahí no entiendo esto: B y el 1 de r"1," ¿Alguien puede explicarme que representa eso? He buscando infor por google pero no logro aclarar la duda. thanks!!!
4
« en: Miércoles 11 de Marzo de 2009, 14:24 »
Buenas! Tengo este ejercicio: Representar el número -1,25 (en base 10) si: -Mantisa entera de 10 bits en complemento a 1 -Exponente de 8 bits en exceso a 128 -Base 2 para la notación Coma flotante. Lo que he hecho ha sido esto: -1,25 (base 10) = -1,01 (en base 2) = 0101 x 2^-2 Puesto que mi mantisa es de 10 bits, relleno con 0's 000000 0101 x 2^-2 Paso a complemento a 1: 111111 1010 x 2 ^-2 El exponente sería 128 - 2 = 126 que en base 2 sería: 01111110 Por lo que me queda: Exponente - Mantisa 011111110 1111111010 Mi duda... si ahora me dicen que lo tengo que poner normalizado como sería??? He estado leyendo pero no logro aclararme. Según lo que he leído, si estoy con mantisas en complemento a 1 o a 2, estaría normalizado si empezase con 01 o 10... Pero no se como aplicar eso al resultado de antes Un ayudita plisss
5
« en: Martes 17 de Febrero de 2009, 13:05 »
Gracias por responder shakka Puerto por medio del cual alguien se esta conectando localmente Pues me dejas casi igual de liao juan tty7 2009-02-17 00:09 (:0)
Eso significa que juan se ha conectado por el puerto 0 (¿tcp o udp?) al terminal virtual tty7? No tenía ni idea de que existisiese el puerto 0, puesto que en las tablas que he mirado los puertos conocidos nunca salía, para que sirve ese puerto? Y cuando le sale a otro usuario el :0.0. Esos dos ceros qué es? Los dos pertenecen al puerto 0? Salu2
6
« en: Martes 17 de Febrero de 2009, 01:05 »
Hola!! Estoy trasteando con gnu/linux y viendo comanditos me sale esto: $ who andres tty1 2009-02-17 00:21 juan tty7 2009-02-17 00:09 (:0) juan pts/1 2009-02-17 00:40 (:0.0) juan pts/4 2009-02-17 00:17 (:0.0) juan pts/5 2009-02-17 00:28 (:0.0) malik pts/0 2009-02-17 00:54 (192.168.2.200)
Sabéis que significa eso de :0 y :0.0. He estado googleando y parece ser que tiene algo que ver con el server de las x (xorg?). Thanks!!
7
« en: Viernes 23 de Enero de 2009, 06:50 »
He hecho este apaño para los retardos. A ver que os parece: ... ;Interrupción para obtener hora del sistema ;En dh carga los segundos mov ah, 2ch int 21h ;cl segundos iniciales mov cl, dh Bucle: int 21h ;para evitar restas del tipo 1 - 59 sub dh, cl jns positivo add dh, 60 positivo: ;retardo de 5 segundos cmp dh, 5 jb Bucle ...
Se aceptan criticas (constructivas ) y mejoras Saludos
8
« en: Martes 20 de Enero de 2009, 20:55 »
Desde el depurador funciona de casualidad ya que este inicializa los registros a cero cosa que vos no haces con dl por lo tanto estas incrementando un valor indeterminado:
... xor dl, dl jmp $ln3@main ...
Me cago en tooo lo que se menea jajaja. Muchas gracias por la ayuda tio
9
« en: Martes 20 de Enero de 2009, 19:05 »
Llevo toda la tarde con lo mismo y me estoy volviendo loco. No tengo ni idea que puedo estar haciendo mal o que no entiendo. Os pongo el programa: .model small .stack .data tabla1 db "hola mundo" longitud equ ($ - tabla1) .code Main: mov ax, @data mov ds, ax mov al, 'o' mov cx, longitud xor si, si jmp $ln3@main $ln2@main: dec cx $ln3@main: cmp cx, 0 je $ln4@main cmp tabla1[si], al jne no_igual inc dl no_igual: inc si jmp $ln2@main $ln4@main: add dl, 30h mov ah, 02 int 21h mov ah, 4ch int 21h end Main
Como podéis ver, eso cuenta el número de "o" que tiene la cadena hola mundo, y lo almacena en dl. Luego, le sumo 30h para, mediante la interrupción 21h y función 02, imprimir en pantalla el carácter, que representa el número de caracteres encontrados. Pero cuando lo ejecuto me suelta por pantalla una O. Pero si lo depuro paso a paso, cuando salgo del depurado si me ha imprimido un 2. Por que pasa esto? Si tengo que dl es 2, 2 + 30h = 32h. Que corresponde al carácter 2, porque me imprime ese O. Una ayudita que me sale humo por las orejas xD thanks!!
10
« en: Martes 20 de Enero de 2009, 19:00 »
¿Por qué no usas una interrupción de reloj en vez de comerte tanto la cabeza con ciclos y demás? Si lo que quieres en una función del tipo sleep(), utiliza un contador en la interrupción de reloj del sistema.
Salud pues porque soy un cabezota jaja. Te haré caso saludos
11
« en: Martes 6 de Enero de 2009, 08:55 »
Uff menudo exitazo de post jaja Reformulo mi pregunta de otra forma, no vaya a ser que no se haya entendido ni papa en el post anterior mov cx, 0FFFFh bucle: loop bucle
El loop bucle lo hará FFFFh veces, es decir, 2^16 veces (65.536). Entonces, si sé el número de ciclos máquina que consume la instrucción mov cx, 0fffh, más los ciclos de loop bucle * 65536, tendré los ciclos máquina totales de ese bucle. si sé la frecuencia de reloj del microprocesador, por ejemplo 4Mhz, tengo que 1 ciclo máquina tarda (si no me he equivocado en las cuentas) 250 ns. Por lo que el número totales de ciclos de esas instrucciones * lo que tarda en ejecutar 1 ciclo tendría el tiempo total Si no estoy equivocado en lo dicho hasta ahora, tengo dos problemas: - Como puedo saber los ciclos máquina de cada instrucción. En unos datasheet del 8086, sólo me vienen el formato de instrucción y el número de bytes que ocupan, por lo que no soy capaz de extraer los ciclos con esa información. -y cuál es la frecuencia de reloj con la que trabajo. Para ensamblar mis programas uso masm de 16 bits. Entonces, tengo que tomar como frecuencia la de mi micro del pc?? Bueno a ver si algún gurú de la materia me arroja un pelín de luz
12
« en: Domingo 4 de Enero de 2009, 08:34 »
Hola! Estoy tratando de resolver un ejercicio: tengo que leer unos pulsadores que me dicen la velocidad a la que tengo que rotar unos leds . A ver lo detallo más, tengo esto: Pulsadores: D0 -> que si está activo a nivel bajo tengo que aumentar la velocidad con la que rotan los leds D1 -> que si está activo a nivel bajo tengo que disminuir la velocidad con la que rotan los leds Están en la 300h Están conectados al bus de datos del 8086 así xxxx xxD1D0 Leds: Conjunto de 8 leds conectados al bus de datos através de su interfaz Están en la 300h Estos leds rotarán indefinidamente, y su velocidad será controlada por los pulsadores Pues ese es el enunciado. Entonces, yo me pongo a ver como solucionarlo y la primera pregunta que me viene a la cabeza es: sería conveniente hacer una especie de pseudocódigo en alto nivel y apartir de él traducirlo a instrucciones asm? O la lógica se suele pensar de otra forma mejor a esta? Yo he pensado algo así: leds = 01h while(1) { Hago retardo if (D0 == 0) //d0 pulsado -> aumento velocidad { if(speed != FFFF) //limite que tendrá mi registro de 16 bits { speed++ } if (D1 == 0) //d1 pulsado -> decremento velocidad { if(D1 != 0) //limite de registro de 16 bits { speed-- } } Roto leds visualizo leds }
Es una mezcla de c y de pseudocódigo, jaja, bueno, seguro que se entiende la lógica del programita. Pasándolo a ensamblador me sale esto: .dosseg .model small .stack 100h .code ;procedimiento de retardo: mantener un led encendido retardo proc mov cx, di bucle: loop bucle retardo endp leds equ 300h ;Dirección E/S de los leds pulsador equ 300h ;Dirección E/S de los pulsadores ; di -> speed ; bl -> Leds on/off ; ax y dx -> para in/out ini: ;le damos a cx una velocidad inicial mov di, 10h mov bl, 01h ;inicializo leds mov dx, leds mov al, bl ;Inicializo leds out dx, al ln1@ini: call retardo mov dx, pulsador in al, dx ;Los pulsadores se activan a nivel bajo, en reposo están a vcc ;si he pulsado d0 y si di (contador de retardo) no ;ha pasado el limite ffffh, entonces incremento velocidad test al, 01h jnz ln2@ini cmp di, 0FFFFh je ln3@ini inc di jmp ln3@ini ln2@ini: ;Decremento velocidad si he pulsado d1 y no he llegado a 0 test al, 02h jnz ln3@ini cmp di, 0 je ln3@ini dec di ;Sabiendo la velocidad, puedo rotar y encender led ln3@ini: ;roto leds y actualizo su estado rol bl, 1 mov dx, leds mov al, bl out dx, al jmp ln1@ini ;siguiente iteración bucle infinito end ini
Masm lo ensambla correctamente... probarlo no he podido, quizás haya un simulador que permita simular cosas como esta, si conocéis alguno... Yo creo que está bien, pero me surgen unas dudas: Puedo saber el tiempo "exacto" de retardo de la rutina "retardo"? Por ejemplo si cx toma el valor ffh, cuantos segundos está haciendo el bucle loop? Bueno creo que eso es todo; disculpad la extensión del post pero quería explicar todo bien para facilitaros un poquitín Se agradece cualquier aportación. Muchas gracias!!!
13
« en: Sábado 3 de Enero de 2009, 08:14 »
Estoy realizando la siguiente operación 65536 * 65536 para lo cual hago los siguiente:
double opr = 0; opr = 65536 * 65536;
y siempre la operación me retorna 0, e intentado con long double y el resultado es el mimos.
No se que estoy haciendo mal.
Gracias 65536 * 65536 lo hace como int * int, porque un entero es por defecto un int. Debe de estar ahí el problema. Si haces opr = double(65536) * double(65536) o simplemente: double(65536) * 65536, debería de asignarle el valor correctamente a la variable opr. Con un double te sirve porque así la operación se convierte al tipo de precisión más alta. Espero que te sirva. Saludos
14
« en: Jueves 1 de Enero de 2009, 18:27 »
Uff, SDP va de lujo Muchas thanks!
15
« en: Miércoles 31 de Diciembre de 2008, 22:40 »
Puedes probar Virtualbox
16
« en: Miércoles 31 de Diciembre de 2008, 21:11 »
Checa si se puede ver el fuente de esa página y de ahí extraes de donde esté guardado el video, aunque como es un protócolo aparte del http no creo. Efectivamente, en el fuente sale el link a mms asi que nada Estoy trasteando con vlc, que he leído que se puede hacer algún apaño; si consigo algo lo posteo. Salu2!
17
« en: Miércoles 31 de Diciembre de 2008, 14:35 »
Gracias Eternal Idol os pongo el código funcionando: dosseg .model small .stack 100h .data cadena db "Hola que tal$" .code muestra proc lea dx, cadena mov ah, 09h int 21h iret muestra endp inicio: mov ax, @data mov ds, ax ;cargar vector interrupcion ;int 21h Función ah=25h al=tipo int ds:dx rutina int push ds mov al, 52h mov dx, offset muestra mov bx, seg muestra mov ds, bx mov ah, 25h int 21h pop ds ;Ejecuta procedimiento int 52h ;devuelve el control al dos mov ah, 4ch int 21h end inicio
PD. Despues esta el tema de que tu codigo no es residente y no restauras el vector de interrupcion original ... Esto no lo entendí muy bien, podrías explicarmelo un poquillo más, que estoy bastante pez en el tema Un saludo
18
« en: Viernes 26 de Diciembre de 2008, 20:30 »
Hola, tengo este código: dosseg .model small .stack 100h .data cadena db "Hola que tal$" .code muestra proc lea dx, cadena mov ah, 09h int 21 iret muestra endp inicio: mov ax, @data mov ds, ax ;cargar vector interrupcion ;int 21h Función ah=25h al=tipo int ds:dx rutina int mov al, 52h mov dx, offset muestra mov bx, seg muestra mov ds, bx mov ah, 25h int 21h ;Ejecuta procedimiento int 52h ;devuelve el control al dos mov ah, 4ch int 21h end inicio
Esto debería de imprimir por pantalla mi cadena. Pero cuando llega a int52h, no entra al procedimiento y no sé cual es el fallo Una ayudita please, que no veo que hago mal
19
« en: Viernes 26 de Diciembre de 2008, 19:05 »
Pues tienes toda la razón No me había fijado que el índice no tenía por que ser el mismo. sorry y gracias por la corrección
20
« en: Viernes 26 de Diciembre de 2008, 12:55 »
Hola,me gustaría que alguien me dijese algún algoritmo que identifique si dos vectores son iguales,es decir que si mete v1[]={5,6,2} y v2[]={5,2,6},me diga que son iguales, alguien tiene por ahi algúno a mano? Pues una chapucilla en pseudocódigo: NumElementos = tamaño(v1) / tamaño(entero) Para i <- 0 hasta NumElementos hacer Si V1[i] == v2[i] entonces iguales = iguales + 1 fin si fin para Si iguales == NumElementos entonces SON IGUALES Si no NO SON IGUALES fin si
21
« en: Miércoles 24 de Diciembre de 2008, 19:02 »
Buenas!
Estoy viendo videos con formato wmv desde una web, pero como accedo a ellos con protocolo mms no puedo guardarlos como si fuese http normal. Entonces, ¿cómo puedo guardar una copia de estos videos a mi disco duro?
Un saludo y gracias anticipadas
22
« en: Miércoles 24 de Diciembre de 2008, 16:59 »
Da negativo porque no inicializas resol a 1. fijate que estás con variables locales, y estas no son inicializadas, conteniendo valores "basura"
Saludos
23
« en: Miércoles 24 de Diciembre de 2008, 16:32 »
Feliz Navidad para todos
24
« en: Viernes 10 de Octubre de 2008, 11:55 »
evito problemas del tipo "redefinicion de tal cosa", tanto en inclusiones de librerias como de macros. Puedes explicarme eso de "problemas del tipo redefinición de tal cosa"? Gracias de antemano
Páginas: [1]
|
|
|