Autor
|
Tema: interrupciones (Leído 4,914 veces)
|
-dominique-
Desconectado
Mensajes: 5
|
Hola, tengo un problema con la interrupcion 10h. Lo que pasa es que quiero imprimir varios mensajes y quiero cambiar los colores de las letras y el fondo. Me guie del ejemplo "Hola mundo" pero cuando quiero imprimer otro mensaje despues de ese, se imprime ensima. ¿Como puedo hacerlo? ¿y se puede combinar la funcion 9 de la interrupcion 21h con alguna de la interrupcion 10h? Gracias
|
|
|
En línea
|
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
Estas en modo texto o modo grafico? Decis que quieres cambiar el fondo, en modo texto solo se puede cambiar el borde. respecto a que si se pueden combinar eso me hace pensar más que estas en modo grafico, las cuales si es así necesitas cambiar las coordenadas seguramente ese es tu problema, postea el codigo para mirar tu problema
|
|
|
En línea
|
|
|
|
_Enko
|
Hola, no recuerdo si habia una interrupcion para eso. Lo que si te puedo decir, es que en modo texto, la matriz del texto de la pantalla (80x25) esta guardada en 0xB8000 Y si aun no recuerdo mal, estaba compuesto por una matriz de 80x25 de WORD. Donde el primer byte es la combinacion de color-fondo y el segundo byte el caracter. Por ejemplo, el texto en con letras blancas y texto negro es: '0',h','0','o','0','l','0','a' Para otro color, se cambia el 0 por un 1,2,3,4etc... aqui mas info http://wiki.osdev.org/Printing_To_Screen
|
|
|
En línea
|
|
|
|
-dominique-
Desconectado
Mensajes: 5
|
Esta en modo texto. Me guie del ejemplo que tiene el emu, "Hello World". En él quise cambiar el codigo para que pueda imprimir varios mensajes. Algo asi:
************ * Mensaje * ************
pero solo imprime en una sola linea, uno ensima del otro. Prove con la funcion 2 para desplazar el cursor pero lo imprime todo y al final lo desplaza. Tambien prove con imprimir un mensaje definido en la zona de datos con la funcion 9 de la interrupcion 21h pero no se ejecuta.
Gracias
|
|
|
En línea
|
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
Esta en modo texto. Me guie del ejemplo que tiene el emu, "Hello World". En él quise cambiar el codigo para que pueda imprimir varios mensajes. Algo asi:
************ * Mensaje * ************
pero solo imprime en una sola linea, uno ensima del otro. Prove con la funcion 2 para desplazar el cursor pero lo imprime todo y al final lo desplaza. Tambien prove con imprimir un mensaje definido en la zona de datos con la funcion 9 de la interrupcion 21h pero no se ejecuta.
Gracias
no puedes imprimir ese tipo de texto? la funcion 02 es para escribir un caracter, la funcion 09 es para escribir una cadena,Mostra tu codigo.
|
|
|
En línea
|
|
|
|
-dominique-
Desconectado
Mensajes: 5
|
Este es el codigo que hice, el problema es que imprime en varios colores. ¿Hay una manera de que imprima en uno solo? org 100h .Data n DB 0 v DB 'Fin del Proceso.' .Code
mov ax, 3 int 10h
mov ax, 1003h mov bx, 0 int 10h
mov dl, 0 ; columnas. mov dh, 0 ; filas.
mov bl, 0 mov si,0 mov di,0 jmp next_char
next_row: mov al,n inc al mov n,al inc dh cmp dh, 4 je stop_print
mov dl, 0 cmp n,1 je next
next_char:
mov ah, 02h int 10h
mov al, '*' mov bh, 0 mov cx, 1 mov ah, 09h int 10h inc bl inc dl cmp dl, 16 je next_row jmp next_char
next:
mov ah, 02h int 10h
mov al, v[si] mov bh, 0 mov cx, 1 mov ah, 09h int 10h inc si inc bl inc dl cmp dl, 16 je next_row
jmp next stop_print:
mov ah, 0 int 16h
ret
|
|
|
En línea
|
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
El color se establece en BL, antes de llamar a la función BL debe contener el valor correspondiente al color deseado, te dejo la paleta de colores: 00H black 08H gray 01H blue 09H bright blue 02H green 0AH bright green 03H cyan 0BH bright cyan 04H red 0CH bright red 05H magenta 0DH bright magenta 06H brown 0EH yellow 07H white 0FH bright white
|
|
|
En línea
|
|
|
|
-dominique-
Desconectado
Mensajes: 5
|
Muchas gracias chicos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Interrupciones en VB
Programación Visual Basic
|
el_chente23
|
4
|
5,714
|
18 Mayo 2005, 22:47 pm
por Slasher-K
|
|
|
Interrupciones
Programación C/C++
|
@synthesize
|
1
|
3,369
|
13 Junio 2010, 12:59 pm
por Eternal Idol
|
|
|
Ayuda con interrupciones..
ASM
|
Vaagish
|
5
|
3,664
|
3 Mayo 2013, 20:16 pm
por x64core
|
|
|
Problemas con _fastcall e interrupciones
Programación C/C++
|
lweb20
|
4
|
1,858
|
24 Julio 2013, 06:22 am
por lweb20
|
|
|
(Consulta) ¿Por qué Windows no usa interrupciones?
ASM
|
class_OpenGL
|
5
|
3,030
|
22 Diciembre 2015, 15:08 pm
por Eternal Idol
|
|