PREGUNTAS CONTESTADAS - Ensamblador

 Hay un total de 123 Preguntas.<<  >> 

    Pregunta:  64460 - COMO BORRAR PANTALLA EN CODIGO ASSEMBLER
Autor:  Dominique Castillo
Hola, necesito que me ayuden con alguna instrucción para poder borrar la pantalla en el código assembler, tengo que mostrar un carácter y moverlo, tengo todo eso resuelto pero necesito borrar la pantalla para que se vea mas real el movimiento y no solo la letra repetida.
  Respuesta:  dai par
hola.
para limpiar la pantalla puedes hacerlo con la interrupción 10h
la rutina sería asi:

MOV AH,09H ; aquí activas el servicio
MOV AL,20H ; 20h es el cod ascii del espacio
MOV BH,PAG ; según la pagina donde estes trabajando
MOV BL,07H ; color RGB
MOV CX,2000 ; veces que se repetira
INT 10H
RETN

    Pregunta:  65226 - COMANDOS ASSEMBLER
Autor:  Exduy Valenzuela
Buenas tardes, este código me lo enviaron y supuestamente debería mostrar los caracteres consecutivos desde la A a la I..pero no funciona..por favor si ves el error y me explicas un poco te lo agradecería , feliz tarde...el código a continuación:

.model small
.data
PRINT_A_J PROC
MOV DL, A ; inicia con el carácter A
MOV CX, 10 ; imprime 10 caracteres
PRINT_LOOP:
CALL WRITE_CHAR ; imprime carácter
INC DL ; siguiente carácter del alfabeto
LOOP PRINT_LOOP ; continua
MOV AH, 0ACH ; retorna al DOS
INT 21h
PRINT_A_J ENDP
WRITE_CHAR PROC
MOV AH, 02 ; activa el código de la función para sacar CHAR
INT 21h ; imprime el carácter que está en DL
RET
WRITE_CHAR ENDP
END PRINT_A_J
  Respuesta:  Raul
Creo que todo el problema es como especificas los datos.

Al principio tienes MOV DL, A no sé si tu compilador lo aceptará como un carácter o como valor héxadecimal. Prueba mejor MOV DL, 41h.

La siguiente MOV CX, 10d ó MOV CX, Ah

La función de retorno al DOS no me suena, yo siempre uso:
MOV AX, 4C00h
INT 21h

Y para imprimir el carácter:
MOV AH, 02h

    Pregunta:  66162 - DUDA MANEJADOR INTERRUPCION RATON
Autor:  Raul
Estoy realizando un proyecto de programa auto-arrancable, con lo cual no uso interrupciones DOS.
He realizado el boot-loader que va cargando mis archivos en memoria y he creado mi propio driver de raton PS/2 con una INT 33h que instala el manejador de interrupcion de INT 74h.
El manejador va guardando los bytes recibidos en un buffer propio y cuando los tiene todos realiza un FAR CALL a la rutina de usuario que le proporcione a traves de la INT 33h.

La duda es:
-¿Cuando debo permitir las interrupciones (STI), antes de la llamada a la rutina de usuario, después, o que lo haga la propia rutina?

Si lo hago antes es posible que ocurra otra interrupción mientras la rutina de usuario todavía procesa los datos. Ademas de que la segunda llamada se completaría antes que la primera, pudiendo corromper los datos originales.

Si espero a que termine la rutina de usuario quizás pierda respuesta del ratón, ya que quizás un click haya comenzado un acceso a disco y hasta que este no termine no se actualizará la pantalla.

Y si fuera la propia rutina la que controla las interrupciones, ¿debería guardar en un buffer de programa los cambios del ratón y que el programa principal realizase las acciones correspondientes al llegar a un punto de su ejecución? Aquí también veo el problema de que se acumulasen mas eventos de los que es capaz de manejar el programa principal en cada pasada.

Aunque es un entorno gráfico orientado principalmente al ratón supongo que el problema será el mismo para la interrupción de teclado.

Gracias de antemano por leeros todo esto.
  Respuesta:  gabriel amezquita
Interesante proyecto, esos son tipicos problemas cuando programamos en modo multitarea, hay que organizar las prioridades que tendran los procesos, y al mismo tiempo evitar que los procesos prioritarios se adueñen del procesador y no permitan ejecutar los demas procesos
En este caso, las rutinas que manejan el raton y el teclado no necesitan mucho tiempo para ejecutarse, lo tardado puede ser dibujar en la pantalla, este podria ser un proceso secundario.

|<  <<  3 4 5 6 7 8 9 10 11 12 13  >>  >|