elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Duda sobre bootloader en paso a modo protegido
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre bootloader en paso a modo protegido  (Leído 7,739 veces)
armizh

Desconectado Desconectado

Mensajes: 187

His brain caught in a hole...


Ver Perfil WWW
Duda sobre bootloader en paso a modo protegido
« en: 11 Diciembre 2011, 16:08 pm »

Bueno la verdad, la duda no es sobre el paso a modo protegido, sino que no estoy seguro si esta funcionando como deberia. He buscado muchisima información pero nada ayuda a salir de mi duda.
Ahora explicando, pues el bootloader es bastante simple, arranca el sistema, muestra un mensaje, luego pasa a modo protegido y muestra otro mensaje, el problema es que el segundo mensaje no se imprime en la pantalla al 100 %. Cree un blog en el que voy publicando cualquier avance, y ahi esta mi duda.
Por cierto, el código está publicado y recién estoy empezando, la publicación del blog es INNECESARIA. Esto lo estoy haciendo para aprender y para que otras personas se animen a aprender.

Código
  1.    ;----------------boot.asm------------------;
  2.    [BITS 16]
  3.    [ORG 0x7c00]
  4.  
  5.    jmp main
  6.  
  7.    bootmesg db "Loading... please wait... "
  8.    pm_mesg  db "Switching to protected mode. "
  9.  
  10.    init:
  11.       mov ax, cs
  12.       mov ds, ax
  13.       mov es, ax
  14.       ret
  15.  
  16.    print_mesg :
  17.       mov ah,0x13
  18.       mov al,0x00
  19.       mov bx,0x0007
  20.       mov cx,0x20
  21.       mov dx,0x0000
  22.       int 0x10
  23.       ret
  24.  
  25.    clrscr :
  26.       mov ax,0x0600
  27.       mov cx,0x0000
  28.       mov dx,0x174f
  29.       mov bh,0
  30.       int 0x10
  31.       ret
  32.  
  33.    switch_protected:
  34.       cli
  35.       mov eax, cr0
  36.       or eax, 1
  37.       mov cr0, eax
  38.       jmp 0x08:protected_main
  39.  
  40.    main:
  41.       call init
  42.       call clrscr
  43.       mov bp,bootmesg
  44.       call print_mesg
  45.       call switch_protected
  46.       jmp main
  47.  
  48.    [BITS 32]
  49.    protected_main:
  50.       mov bp,pm_mesg
  51.       call print_mesg
  52.       jmp protected_main
  53.  
  54.    times 510-($-$$) db 0
  55.    db 0x55
  56.    db 0xAA


« Última modificación: 11 Diciembre 2011, 16:25 pm por Eternal Idol » En línea

Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código
  1. git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código
  1. git clone https://github.com/armizh/Hamster
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda sobre bootloader en paso a modo protegido
« Respuesta #1 en: 11 Diciembre 2011, 16:23 pm »

Escribe solo en modo real y escribe los 32 caracteres que le mandas escribir ...

CX = number of characters in string.

http://www.ctyme.com/intr/rb-0210.htm

Mejor termina las cadenas con un 0 terminador.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
armizh

Desconectado Desconectado

Mensajes: 187

His brain caught in a hole...


Ver Perfil WWW
Re: Duda sobre bootloader en paso a modo protegido
« Respuesta #2 en: 11 Diciembre 2011, 18:02 pm »

Escribe solo en modo real y escribe los 32 caracteres que le mandas escribir ...

CX = number of characters in string.


Ohhh jeje, siertamente fue un error estupido, debi haber revisado bien esa página anoche, o tal vez estaria medio dormido ;D
Pero, ahora me surge una nueva duda, realmente escribe solo en modo real y ya que pase a modo protegido simplemente no escribe lo segundo... ¿como se escribe en pantalla en modo protegido? Graciaas
En línea

Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código
  1. git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código
  1. git clone https://github.com/armizh/Hamster
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda sobre bootloader en paso a modo protegido
« Respuesta #3 en: 11 Diciembre 2011, 19:00 pm »

Directamente escrbiendo en la memoria, empezando por 0B8000h.

http://wiki.osdev.org/Printing_to_Screen
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
armizh

Desconectado Desconectado

Mensajes: 187

His brain caught in a hole...


Ver Perfil WWW
Re: Duda sobre bootloader en paso a modo protegido
« Respuesta #4 en: 11 Diciembre 2011, 19:59 pm »

Perdon por tantas preguntas tal vez estupidas, pero como se hace eso?
En línea

Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código
  1. git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código
  1. git clone https://github.com/armizh/Hamster
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda sobre bootloader en paso a modo protegido
« Respuesta #5 en: 11 Diciembre 2011, 20:18 pm »

¿Leiste el enlace que deje? ¿Tenes alguna duda concreta?
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
armizh

Desconectado Desconectado

Mensajes: 187

His brain caught in a hole...


Ver Perfil WWW
Re: Duda sobre bootloader en paso a modo protegido
« Respuesta #6 en: 11 Diciembre 2011, 20:26 pm »

¿Leiste el enlace que deje? ¿Tenes alguna duda concreta?

Bueno, se supone que el orden es
Código:
0x000b8000: 'H', colourforH
cambio 'colourforH' por 0x07 que es lightgrey-on-black
pero a la hora de compilar me aparece 'error: label or instruction expected at start of line'
En línea

Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código
  1. git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código
  1. git clone https://github.com/armizh/Hamster
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda sobre bootloader en paso a modo protegido
« Respuesta #7 en: 11 Diciembre 2011, 21:04 pm »

Eso no es codigo, lee el enlace completo de nuevo, sobre el final tenes un ejemplo:
Código
  1. mov [0xb8000], 0x07690748

Igual sin saber assembly mucho mas que copiar y pegar no vas a estar haciendo la verdad ...
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
armizh

Desconectado Desconectado

Mensajes: 187

His brain caught in a hole...


Ver Perfil WWW
Re: Duda sobre bootloader en paso a modo protegido
« Respuesta #8 en: 11 Diciembre 2011, 21:22 pm »

Eso no es codigo, lee el enlace completo de nuevo, sobre el final tenes un ejemplo:
Código
  1. mov [0xb8000], 0x07690748

Igual sin saber assembly mucho mas que copiar y pegar no vas a estar haciendo la verdad ...

Siento defraudarte por dos razones: primero no soy ningun genio ni erudito del asm, estoy aprendiendo lo basico como para poder pasar ya a C o C++ o cualquier lenguaje para crear un kernel, y segundo, esto es una de las pocas cosas que he estado haciendo con copiar y pegar... Creo que me faltab algo: aun con el ejemplo no compila 'error: operation size not specified'
Realmente creo que hay veces en que nos gustaria que nos explicaran algo, especialmente a los que estamos comenzando. Gracias de todos modos
En línea

Visita mi blog:
http://armizh.10h.us/
Fnx, fork de FreeNOS:
Código
  1. git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++:
Código
  1. git clone https://github.com/armizh/Hamster
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda sobre bootloader en paso a modo protegido
« Respuesta #9 en: 11 Diciembre 2011, 22:24 pm »

Convengamos que tomar eso por codigo no es precisamente ser un genio o erudito sino mas bien no tener ni la mas minima idea. Si estas empezando lo que tenes que hacer es leer los hilos que estan fijados arriba en el subforo y mas que nada comprarte un libro de ensamblador. Asi al menos iras comprendiendo lo que estas haciendo y te daras cuenta tambien que muchas veces alguien que sabe contar quiere que le enseñen raices cubicas personas que no son maestros ni cobran por responder. Primero aprende a sumar, restar, multiplicar y dividir.

PD. Proba con mov dword ptr [], yo trabajo con MASM y no con NASM.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al debuguear paso de modo usuario a modo kernel
Ingeniería Inversa
jauma 0 2,185 Último mensaje 11 Junio 2006, 20:53 pm
por jauma
Adobe Reader tendrá un modo protegido”
Noticias
Novlucker 0 1,562 Último mensaje 21 Julio 2010, 13:46 pm
por Novlucker
Pasar a modo protegido problema
ASM
Riki_89D 1 4,972 Último mensaje 4 Mayo 2011, 20:19 pm
por karmany
Duda sobre modo :P
ASM
S3kh 7 4,606 Último mensaje 19 Julio 2011, 15:46 pm
por _Enko
Utilidad para vigilar el uso del Modo Protegido en Internet Explorer
Noticias
wolfbcn 0 2,015 Último mensaje 23 Mayo 2012, 22:59 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines