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