ejemplos modo protegido.pdf


Vista previa del archivo PDF ejemplos-modo-protegido.pdf


Página 1...11 12 13141591

Vista previa de texto


; ej01.asm – entrar y salir a modo protegido
;
; Protected Mode by Examples – 1era Edición - Octubre 2004
;
; Autor:
; Mariano Cerdeiro
; <m.cerdeiro@soix.com.ar>
; http://www.soix.com.ar/links/mpbyexamples.html
;
; compilar: nasm ej01.asm -o ej01.com
;
; Este programa entra y sale de modo protegido. Se mantiene en modo
; protegido hasta que se presione la tecla escape para entonces retornar
; a modo real.
;
; Entrar a modo protegido implica setear el bit 0 del registro cr0 PE
; (Protection Enable). Para retornar se debe hacer lo inverso, resetear
; nuevamente el bit PE.
;
; Como su nombre lo indica, modo protegido es un modo en el que el
; procesador brinda al SO herramientas para poder proteger tanto a una
; aplicación de otra, como al SO de todas las aplicaciones. De esta
; forma, si alguna genera un error, bastará con cerrarla. De modo que,
; si, estando ya en modo protegido (por ejemplo en una ventana de
; Windows), se intenta setear el bit PE (el cual ya estará seteado), el
; programa será cerrado por el sistema operativo, indicando que no se
; puede correr la aplicación.
;
use16
org 100h
;
; Al tratarse de un archivo .com se coloca el org correspondiente, y
; como se parte de modo real se debe usar segmento de 16 bits.
;
jmp inicio
;
; Se saltean las variables por costumbre, a pesar de que en este caso no
; hay.
;
inicio:
;
;
mov eax,1
;break: cmp eax,1
;
je break
;
; IMPORTANTE:
; Las anteriores líneas se colocan aquí para poder comenzar a utilizar
; el bochs como herramienta de depuración. Lo que se debe hacer es
; quitar los comentarios de las líneas y compilar el programa. Al correr
; el bochsdbg, pulsar ctrl-c en la consola de debug, una vez ejecutado
; el programa ej01.com. Del manual del bochs y del help de la línea de
; comandos se puede obtener ayuda para entender su funcionamiento.
;
; Con set $eax=0 <ENTER> se hace cierta la condición para salir del
; bucle, para luego, con s <ENTER>, ejecutar paso a paso el programa.
; Este método de depuración se puede copiar en cualquier parte del
; programa. Es conveniente colocarlo después de la parte del programa
; que no falla, para hacer el proceso de depuración lo más simple
; posible. También se lo puede utilizar para saber qué está sucediendo
; exactamente al ejecutar estos u otros ejercicios.
;