• Domingo 17 de Noviembre de 2024, 17:28

Mostrar Mensajes

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.


Temas - Malik

Páginas: [1]
1
Python / Duda con Regexp
« en: Miércoles 18 de Marzo de 2009, 18:15 »
Tengo esto:
Código: Python
  1.  
  2. return re.sub(r"(d{3}B)", r"1,", str(number)[::-1])[::-1]
  3.  
  4.  

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!!!

2
Dudas informáticas / Normalización Mantisa entera
« 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  :brickwall:

Un ayudita plisss :)

3
GNU/Linux / :0.0 en who
« en: Martes 17 de Febrero de 2009, 01:05 »
Hola!!

Estoy trasteando con gnu/linux y viendo comanditos me sale esto:
Código: Text
  1.  
  2. $ who
  3. andres    tty1         2009-02-17 00:21
  4. juan   tty7         2009-02-17 00:09 (:0)
  5. juan    pts/1        2009-02-17 00:40 (:0.0)
  6. juan    pts/4        2009-02-17 00:17 (:0.0)
  7. juan    pts/5        2009-02-17 00:28 (:0.0)
  8. malik pts/0        2009-02-17 00:54 (192.168.2.200)
  9.  
  10.  

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!!

4
ASM (Ensamblador) / duda en int21h (función 02h)
« 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:

Código: ASM
  1.  
  2. .model small
  3.     .stack
  4.     .data
  5. tabla1  db  "hola mundo"
  6. longitud    equ ($ - tabla1)
  7.     .code
  8. Main:
  9.     mov ax, @data
  10.     mov ds, ax
  11.    
  12.     mov al, 'o'
  13.     mov cx, longitud
  14.     xor si, si
  15.    
  16.     jmp $ln3@main
  17.    
  18. $ln2@main:
  19.     dec cx
  20. $ln3@main:
  21.     cmp cx, 0
  22.     je $ln4@main
  23.     cmp tabla1[si], al
  24.     jne no_igual
  25.     inc dl
  26. no_igual:
  27.     inc si
  28.     jmp $ln2@main
  29. $ln4@main:
  30.    
  31.     add dl, 30h
  32.     mov ah, 02
  33.     int 21h
  34.    
  35.     mov ah, 4ch
  36.     int 21h
  37. end Main
  38.  
  39.  

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?  :brickwall:

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!!

5
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í:
Código: C
  1.  
  2. leds = 01h
  3. while(1)
  4. {
  5.     Hago retardo
  6.     if (D0 == 0) //d0 pulsado -> aumento velocidad
  7.     {
  8.         if(speed != FFFF) //limite que tendrá mi registro de 16 bits
  9.         {
  10.             speed++
  11.         }
  12.     if (D1 == 0) //d1 pulsado -> decremento velocidad
  13.     {
  14.         if(D1 != 0) //limite de registro de 16 bits
  15.         {
  16.             speed--
  17.         }
  18.     }
  19.    
  20.     Roto leds
  21.     visualizo leds
  22. }
  23.  
  24.  

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:

Código: ASM
  1.  
  2.    .dosseg
  3.     .model small
  4.     .stack 100h
  5.     .code
  6. ;procedimiento de retardo: mantener un led encendido
  7. retardo proc
  8.  
  9.     mov cx, di
  10. bucle:
  11.     loop bucle
  12.  
  13. retardo endp
  14.  
  15. leds        equ 300h ;Dirección E/S de los leds
  16. pulsador    equ 300h ;Dirección E/S de los pulsadores
  17.  
  18. ; di -> speed
  19. ; bl -> Leds on/off
  20. ; ax y dx -> para in/out
  21.  
  22. ini:
  23.     ;le damos a cx una velocidad inicial
  24.     mov di, 10h
  25.     mov bl, 01h
  26. ;inicializo leds
  27.     mov dx, leds
  28.     mov al, bl
  29.     ;Inicializo leds
  30.     out dx, al
  31.    
  32. ln1@ini:
  33.     call retardo
  34.     mov dx, pulsador
  35.     in al, dx
  36.     ;Los pulsadores se activan a nivel bajo, en reposo están a vcc
  37.    
  38.     ;si he pulsado d0 y si di (contador de retardo) no
  39.     ;ha pasado el limite ffffh, entonces incremento velocidad
  40.     test al, 01h
  41.     jnz ln2@ini
  42.    
  43.     cmp di, 0FFFFh
  44.     je ln3@ini
  45.    
  46.     inc di
  47.     jmp ln3@ini
  48. ln2@ini:
  49.     ;Decremento velocidad si he pulsado d1 y no he llegado a 0
  50.     test al, 02h
  51.     jnz ln3@ini
  52.    
  53.     cmp di, 0
  54.     je ln3@ini
  55.    
  56.     dec di
  57.    
  58.     ;Sabiendo la velocidad, puedo rotar y encender led
  59. ln3@ini:
  60.    
  61.     ;roto leds y actualizo su estado
  62.     rol bl, 1
  63.    
  64.     mov dx, leds
  65.     mov al, bl
  66.     out dx, al
  67.    
  68.     jmp ln1@ini ;siguiente iteración bucle infinito
  69. end ini
  70.    
  71.    
  72.    
  73.    
  74.    
  75.  
  76.  

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!!!

6
ASM (Ensamblador) / Procedimiento para mostrar cadena con interrupción MASM
« en: Viernes 26 de Diciembre de 2008, 20:30 »
Hola, tengo este código:

Código: Text
  1.  
  2.                 dosseg
  3.                 .model small
  4.                 .stack 100h
  5.                 .data
  6. cadena          db  "Hola que tal$"
  7.                 .code
  8. muestra         proc
  9.                 lea dx, cadena
  10.                 mov ah, 09h
  11.                 int 21
  12.                 iret
  13. muestra         endp
  14.  
  15. inicio:         mov ax, @data
  16.                 mov ds, ax
  17.                 ;cargar vector interrupcion
  18.                 ;int 21h Función ah=25h  al=tipo int ds:dx rutina int
  19.                 mov al, 52h
  20.                 mov dx, offset muestra
  21.                 mov bx, seg muestra
  22.                 mov ds, bx
  23.                 mov ah, 25h
  24.                 int 21h
  25.                
  26.                 ;Ejecuta procedimiento
  27.                 int 52h
  28.                
  29.                 ;devuelve el control al dos
  30.                 mov ah, 4ch
  31.                 int 21h
  32.                 end inicio
  33.  
  34.  

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  :brickwall:

7
Windows / Grabar videos wmv de una web con link mms://...wmv
« 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

Páginas: [1]