OSDev.org https://forum.osdev.org/ |
|
32 bit https://forum.osdev.org/viewtopic.php?f=1&t=12747 |
Page 1 of 1 |
Author: | Jabus [ Sat Jan 20, 2007 7:47 am ] |
Post subject: | 32 bit |
heres just a quick question. If i want to use the 32 bit registers do i have to be in protected mode? |
Author: | bubach [ Sat Jan 20, 2007 7:48 am ] |
Post subject: | |
No, but you better check so that it's a 386 or higher first. |
Author: | Candy [ Sat Jan 20, 2007 7:51 am ] |
Post subject: | |
bubach wrote: No, but you better check so that it's a 386 or higher first.
or register an invalid opcode handler (which then errs out) or just expect a crash. |
Author: | Jules [ Tue Jan 30, 2007 8:26 am ] |
Post subject: | |
The invalid opcode exception was only introduced on 386, IIRC. I once wrote a 386 detection routine that was small enough to fit in my boot sector, alongside the routine to load my stage 2 boot loader from a file in the root directory of a FAT filesystem, AND intelligible error messages for when stuff went wrong. I thought that was pretty cool at the time! |
Author: | JAAman [ Tue Jan 30, 2007 11:44 am ] |
Post subject: | |
if you want the code for this, it is quite simple: Code: MOV AX, 0xF000 ; set all the high bits to 1
PUSHF ; save state of flags register before modifying PUSH AX POPF ; move AX into FLAGS PUSHF POP AX ; move it back -- anything in flags forced to a specific value is changed POPF ; restore previous flags AND AH,0xF0 ; mask out the bottom part, and move it into flags for checking JS no386 ; the sign bit is only set on 8086/8 JZ no386 ; bits 12:15 0 on start, and cannot be changed in RMode on 286, ; but can on 386 :386code ; if you get here you have a 386 standard disclaimer: this code is public domain, and can be used by anyone for any reason, and modified in any way -- im not responsible for any problems with this code |
Page 1 of 1 | All times are UTC - 6 hours |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |