|
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
« 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
« 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: os adjunto la parte que se encarga de escribir en cada posición de la pantalla: escribir: ;leer la posición actual del cursor mov ah,3 mov bh,0 mov byte ptr fila,dh mov byte ptr columna,dl shr dh,3 ;divido por 8 el valor de la fila ya que esty trabjando en modo texto 25X80 ¿pixels? shr dl,3 ;divido por 8 el valor de la columna MOV AH,0 MOV AL,DL MOV BX,160 MUL BX ADD AX,CX mov cx, columna shr cx,2 ;multiplicar X2 la columna add ax,cx mov bx,ax mov es:[bx], 'K' mov es:[bx+1], 00010111b jmp bucle fin : mov ah,4ch int 21h
es algo de mejora preo no esta del todo en condiciones necesito vuestra magia saludos gracias a todos por vuestra colaboraciçon
3
« 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
« 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 : datos segment datos ends pila segment stack db 100 dup('?') pila ends codigo segment assume cs:codigo,ds:datos,ss:pila inicio: mov ax,datos mov ds,ax ;comprobarl la existencia del driver del ratón mov ax,0 int 33h cmp ax,0 je salir ;mostrar el cursor mov ax,01h int 33h ; comprobar la pulsación del botón izquierdo btn_i : mov ax,5 mov bx,0 int 33h cmp bx,1 jae izk jmp btn_i izk : mov ax,03h shl cx,3 add cx,1 shl dx,3 add dx,1 mov columna,cx mov fila ,dx int 33h mov ax,0b800h mov es,ax mov byte ptr es:c[fila *160+clumna*2],'A' ;aqui en principio tengo que pasarle las coordenadas del cursor para mostrar el dato mov byte ptr es:[fila*160+columna*2+1],00010111b mov ax,5 mov bx,0 int 33h cmp bx,1 jae izk jmp salir salir : mov ax,4ch int 21h codigo ends end inicio
gracias de antemano por su ayuda saludos
5
« 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
« 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
« en: Sábado 24 de Octubre de 2009, 22:42 »
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
« en: Sábado 24 de Octubre de 2009, 19:21 »
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
« en: Sábado 24 de Octubre de 2009, 17:58 »
¿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
« 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]
|
|
|