Este How to trata sobre cómo escribir en pantalla, para esto tratare de ser lo mas gráfico y explicativo posible, para evitar cometer los errores que muchas páginas (y personas que no nombrare) han cometido.
Modo Real:
Escribir en el Modo Real es bastante fácil, ya que se ocupan las interrupciones de la BIOS, la cual en este caso es 10h.
[BITS 16]
[ORG 7C00h]
jmp main
bootmesg db "Loading... please wait... ",0Dh,0Ah,0
print_mesg:
mov ah,13h ;Llama a la función 13h
mov al,00h ;Modo de escritura
mov bx,0007h
mov cx,1Ah ;Indica que el numero de caracteres es 26
mov dx,0000h
mov bl,07h
int 10h ;Llama a la interrupcion 10h
main:
mov bp, bootmesg
call print mesg
times 510-($-$$) db 0
db 0x55
db 0xAA
Modo Protegido:
Escribir en el Modo Protegido, a pesar de no ser tan fácil como en el Modo Real, es igualmente fácil, sólo se necesita unas declaraciones y un bucle.
mov ax, 10h
mov ds, ax
mov ss, ax
mov esp, 090000h
mov esi,words
xor edx,edx
loop0:
mov word cx,[esi]
mov word [ds:0B8000h+160d+edx],cx
inc edx
inc esi
cmp byte [esi],0
jnz loop0
words db 'Epspcprpipbpap pspup ptpepxptpop apqpupip',0Dh,0A,0
Aclaro que este código no lo he escrito yo, si no que lo encontre en internet y la verdad es que funciona bastante bien, aun que me encuentro en estos momentos buscando una forma de optimizar el código y buscar las funciones extras.
La letra p entre cada letra del texto a mostrar indica que el texto estara escrito en color negro con fondo gris y estoy tratando de encontrar una forma de escribir en gris con fondo negro.
Cualquier aporte porfavor un comentario o un mensaje en la sección Contacto.
esta muy bueno y continua mejorando NuOs
ResponderBorrar