| 
	
		|  Autor | Tema: Duda sobre bootloader en paso a modo protegido  (Leído 8,237 veces) |  
	| 
			| 
					
						| armizh 
								
								 Desconectado 
								Mensajes: 187
								 
								His brain caught in a hole...
								
								
								
								
								
								     | 
 
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.     ;----------------boot.asm------------------;    [BITS 16]    [ORG 0x7c00]     jmp main     bootmesg db "Loading... please wait... "    pm_mesg  db "Switching to protected mode. "     init:       mov ax, cs       mov ds, ax       mov es, ax       ret     print_mesg :       mov ah,0x13       mov al,0x00       mov bx,0x0007       mov cx,0x20       mov dx,0x0000       int 0x10       ret     clrscr :       mov ax,0x0600       mov cx,0x0000       mov dx,0x174f       mov bh,0       int 0x10       ret     switch_protected:       cli       mov eax, cr0       or eax, 1       mov cr0, eax       jmp 0x08:protected_main     main:       call init       call clrscr       mov bp,bootmesg       call print_mesg       call switch_protected       jmp main     [BITS 32]    protected_main:       mov bp,pm_mesg       call print_mesg       jmp protected_main     times 510-($-$$) db 0    db 0x55    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: git clone https://github.com/armizh/Fnx
 Hamster, Entorno Integrado de Desarrollo C/C++: git clone https://github.com/armizh/Hamster
 |  |  |  | 
			| 
					
						| Eternal Idol 
								Kernel coder ajeno al tiempo 
								Moderador
								      Desconectado 
								Mensajes: 5.970
								
								 
								Israel nunca torturó niños, ni lo volverá a hacer.
								
								
								
								
								
								     | 
 
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 
								Mensajes: 187
								 
								His brain caught in a hole...
								
								
								
								
								
								     | 
 
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   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: git clone https://github.com/armizh/Fnx
 Hamster, Entorno Integrado de Desarrollo C/C++: git clone https://github.com/armizh/Hamster
 |  |  |  | 
			| 
					
						| Eternal Idol 
								Kernel coder ajeno al tiempo 
								Moderador
								      Desconectado 
								Mensajes: 5.970
								
								 
								Israel nunca torturó niños, ni lo volverá a hacer.
								
								
								
								
								
								     | 
 
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 
								Mensajes: 187
								 
								His brain caught in a hole...
								
								
								
								
								
								     | 
 
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: git clone https://github.com/armizh/Fnx
 Hamster, Entorno Integrado de Desarrollo C/C++: git clone https://github.com/armizh/Hamster
 |  |  |  | 
			| 
					
						| Eternal Idol 
								Kernel coder ajeno al tiempo 
								Moderador
								      Desconectado 
								Mensajes: 5.970
								
								 
								Israel nunca torturó niños, ni lo volverá a hacer.
								
								
								
								
								
								     | 
 
¿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 
								Mensajes: 187
								 
								His brain caught in a hole...
								
								
								
								
								
								     | 
 
¿Leiste el enlace que deje? ¿Tenes alguna duda concreta?
 Bueno, se supone que el orden es 0x000b8000: 'H', colourforHcambio '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: git clone https://github.com/armizh/Fnx
 Hamster, Entorno Integrado de Desarrollo C/C++: git clone https://github.com/armizh/Hamster
 |  |  |  | 
			| 
					
						| Eternal Idol 
								Kernel coder ajeno al tiempo 
								Moderador
								      Desconectado 
								Mensajes: 5.970
								
								 
								Israel nunca torturó niños, ni lo volverá a hacer.
								
								
								
								
								
								     | 
 
Eso no es codigo, lee el enlace completo de nuevo, sobre el final tenes un ejemplo: 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 
								Mensajes: 187
								 
								His brain caught in a hole...
								
								
								
								
								
								     | 
 
Eso no es codigo, lee el enlace completo de nuevo, sobre el final tenes un ejemplo: 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: git clone https://github.com/armizh/Fnx
 Hamster, Entorno Integrado de Desarrollo C/C++: git clone https://github.com/armizh/Hamster
 |  |  |  | 
			| 
					
						| Eternal Idol 
								Kernel coder ajeno al tiempo 
								Moderador
								      Desconectado 
								Mensajes: 5.970
								
								 
								Israel nunca torturó niños, ni lo volverá a hacer.
								
								
								
								
								
								     | 
 
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
 |  |  |  |  |  
 
	
 
 
				
					
						| 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,398 |  11 Junio 2006, 20:53 pm por jauma
 |  
						|   |   | Adobe Reader tendrá un modo protegido” Noticias
 | Novlucker | 0 | 1,947 |  21 Julio 2010, 13:46 pm por Novlucker
 |  
						|   |   | Pasar a modo protegido problema ASM
 | Riki_89D | 1 | 5,206 |  4 Mayo 2011, 20:19 pm por karmany
 |  
						|   |   | Duda sobre modo :P ASM
 | S3kh | 7 | 5,010 |  19 Julio 2011, 15:46 pm por _Enko
 |  
						|   |   | Utilidad para vigilar el uso del Modo Protegido en Internet Explorer Noticias
 | wolfbcn | 0 | 2,325 |  23 Mayo 2012, 22:59 pm por wolfbcn
 |    |