• Martes 12 de Noviembre de 2024, 21:02

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.


Mensajes - chouki

Páginas: [1]
1
ASM (Ensamblador) / Re: posiciones del cursor del ratón
« en: Lunes 8 de Febrero de 2010, 17:38 »
gracias toph
por tu respuesta,son problemas de coordenadas yaque al pulsar el botón izquierdo se imprime
el carácter pero no en la posición correcta.
gracias por tu colaboración.
sal2

2
ASM (Ensamblador) / Re: posiciones del cursor del ratón
« en: Domingo 7 de Febrero de 2010, 17:03 »
hola
consigo con este codigo mostrar el carácter en pantalla pero no en la posición adecuada,aunque en principio
voy por un buen camino porque por lo menos a cada vez que pulso el botón izquierdo del ratón si muestra el carácter
ahora lo que está fallando son posiciones: :P  :(
os adjunto la parte que se encarga de escribir en cada posición de la pantalla:
Código: ASM
  1.  
  2.  
  3. escribir:
  4.          
  5.          ;leer la posición actual del cursor
  6.           mov ah,3
  7.           mov bh,0
  8.           mov byte ptr fila,dh
  9.           mov byte ptr columna,dl
  10.      
  11.           shr dh,3 ;divido por 8 el valor de la fila ya que esty trabjando en modo texto 25X80 ¿pixels?
  12.           shr dl,3 ;divido por 8 el valor de la columna        
  13.  
  14.           MOV AH,0
  15.           MOV AL,DL
  16.           MOV BX,160
  17.           MUL BX
  18.           ADD AX,CX
  19.        
  20.           mov cx, columna
  21.           shr cx,2              ;multiplicar X2 la columna
  22.                  
  23.           add ax,cx
  24.           mov bx,ax
  25.           mov  es:[bx], 'K'
  26.           mov  es:[bx+1], 00010111b
  27.  
  28.           jmp bucle
  29.  
  30.   fin :
  31.           mov ah,4ch
  32.           int 21h
  33.  
  34.  
  35.  
es algo de mejora preo no esta del todo en condiciones
necesito vuestra magia
saludos
gracias a todos por vuestra colaboraciçon

3
ASM (Ensamblador) / Re: posiciones del cursor del ratón
« en: Miércoles 3 de Febrero de 2010, 17:58 »
hola
maestro acabo de comprobarlo y no tira?
no sé que es lo que está fallando???????
gracias por su respuesta
sal2

4
ASM (Ensamblador) / posiciones del cursor del ratón
« en: Martes 2 de Febrero de 2010, 11:30 »
hola
estoy interesado en hacer un programa en ensamblador que me permite a cada vez que pulso p.e el botón izquierdo del ratón en cualquier posición de la pantalla (modo texto) me imprime un carácter.
lo que no sé exactamente cómo puedo obtener en cualquier momento las posiciones del ratón sabiendo que existe una función con el registro ax=3 del servicio 33h que me permite obtener las coordenadas del cursor,el problema a la hora de mostrar dicho carácter en la pantalla,como estoy trabajando en modo texto lo que hago es X 160 (el valor de la fila) X2(el valor de la columna),para escribir el carácter en una posición concreta.
os adjunto una muestra del código,corregirme si me equivoco please :
Código: ASM
  1.  
  2. datos segment
  3.  
  4. datos ends
  5.  
  6. pila segment stack
  7.  
  8.   db 100 dup('?')
  9.  
  10. pila ends
  11.  
  12. codigo segment
  13.  assume cs:codigo,ds:datos,ss:pila
  14.  
  15.  inicio:
  16.           mov ax,datos
  17.      mov ds,ax
  18.  
  19.          ;comprobarl la existencia del driver del ratón
  20.        
  21.           mov ax,0
  22.           int 33h
  23.           cmp ax,0
  24.           je salir
  25.          
  26.          ;mostrar el cursor
  27.          
  28.           mov ax,01h
  29.           int 33h
  30.            
  31.        
  32.  
  33.          ; comprobar la pulsación del botón izquierdo
  34.  
  35.  
  36.   btn_i :  
  37.            mov ax,5
  38.            mov bx,0
  39.            int 33h
  40.            cmp bx,1
  41.            jae izk
  42.            jmp btn_i
  43.  
  44.      
  45.  
  46.   izk :  mov ax,03h
  47.          shl cx,3
  48.          add cx,1
  49.          shl dx,3
  50.          add dx,1
  51.          mov columna,cx
  52.          mov fila ,dx
  53.          int 33h
  54.      
  55.         mov ax,0b800h
  56.         mov es,ax
  57.         mov byte ptr es:c[fila *160+clumna*2],'A'  ;aqui en principio tengo que pasarle las coordenadas del cursor para mostrar el dato
  58.         mov byte ptr es:[fila*160+columna*2+1],00010111b
  59.        
  60.         mov ax,5
  61.         mov bx,0
  62.         int 33h
  63.         cmp bx,1
  64.         jae izk
  65.          
  66.         jmp salir        
  67.  
  68.          
  69.  
  70.   salir :     mov ax,4ch
  71.               int 21h
  72.  
  73.        
  74. codigo ends
  75. end inicio
  76.  
  77.  
  78.          
  79.  
  80.  
  81.  
  82.  
gracias de antemano por su ayuda
saludos

5
Otros Sistemas Operativos / Re: Cd arranque ms dos
« en: Lunes 14 de Diciembre de 2009, 00:12 »
gracias
aunque también pienso,yaque el problema está en el puerto usb que lo tengo conectado al ratón si fuese el puerto serie
no pienso que va a dar problemas.
saludos

6
Otros Sistemas Operativos / Cd arranque ms dos
« en: Jueves 10 de Diciembre de 2009, 17:26 »
hola
muy buenas estoy nuevo en este mundo del ensamblador,consigui el cd de arranque ms_dos para poder trabajar con turbo assembler lo que pasa al arrancarlo no me conoce el ratón  sabiendo que lo tengo conectado en puerto usb.
alguién sabe cómo puedo resolver dicho problema.
Muchisima gracias de antemano
saludos

7
ASM (Ensamblador) / Re: contenido del cs(cod segment)?
« en: Sábado 24 de Octubre de 2009, 22:42 »
Cita de: "Eternal Idol"
Ah, tiene la obligacion, es decir que como imagine desde un principio esto es una TAREA y no una duda. Bueno, intente hacer lo que le dije, y podra ver cual es el valor de cs.
que listo eres
deja tu ayuda para los listos como vos.

8
ASM (Ensamblador) / Re: contenido del cs(cod segment)?
« en: Sábado 24 de Octubre de 2009, 19:21 »
Cita de: "Eternal Idol"
Bien, igual no entiendo como a alguien le puede interesar un detalle (irrelevante si se me permite) del funcionamiento interno de un S.O. arcaico y obsoleto como MS-DOS.

Haciendo un programa que ejecute a este y depurando al primero deberias poder comprobar si tus calculos son correctos.
gracias maestro
por sus sugerencias,y le vuelvo a decir que tengo la obligación de hacerlo manualmente por eso estoy pidiendo ayuda.
espero que me explicado
saludos

9
ASM (Ensamblador) / Re: contenido del cs(cod segment)?
« en: Sábado 24 de Octubre de 2009, 17:58 »
Cita de: "Eternal Idol"
¿Es una duda realmente? Usa debug.exe y fijate ...
hola
gracias por su respuesta lo que pasa estoy haciendo a mano yaque me interesa saber el resultado teoricamente.
pero la verdad no sé que es lo que estoy haciendo mal.
saludos.

10
ASM (Ensamblador) / contenido del cs(cod segment)?
« en: Sábado 24 de Octubre de 2009, 13:54 »
hola
estoy empezando con el ensamblador y tengo la duda siguiente haber si me podéis decir que es lo que tengo mal.
suponiendo que un fichero.map, correspondiente al mapa de memoria resultante de la compilación y linkado de cierto programa:
es el siguiente:
Start Stop Length Name
00000H ----H 00070H DATOS
00260H ----H 00030H PILA
00620H ----H 00700H CODIGO1
02760H ----H 03000H CODIGO2

Program entry point at 0276:0004H


Sabiendo que cuando se carga el ejecutable, el PSP se ubica en la posición física 18840H,  quiero saber el contenido del registro CS antes de ejecución del programa.
entonces lo que hicé es :
A)calculé la dirección fisica base del map. sumandole 100H(256 byte) = 18940H(hexad)
B)calculé la dirección física de inicio de cada segmento de codigo:
18940H+columna de inicio de segmento de codigo(start)=18F60H
entonces para saber el valor del registro del cs lo que hice es obtener la dir lógica apartir de la dirección fisica que he obtenido 18F60---->18F6:0000(cs:ip).
entonces no sé si lo que hecho està bien o està mal?
Muchisima gracias de antemano
en la espera de vuestra ayuda
les saludo atentamente.

Páginas: [1]