The MASM Forum Archive 2004 to 2012

Miscellaneous Forums => The Orphanage => Topic started by: ozzy_85 on April 23, 2006, 04:37:28 PM

Title: ROM BIOS Services
Post by: ozzy_85 on April 23, 2006, 04:37:28 PM
While calling a ROMBIOS service, you load the service number in the 'AH' register and use the INT instruction to call an interrupt... control is then transffered to the corresponding service routine which is predefined. Now my question is, in which language is this service routine coded, machine or assembly??

Thanx in advance...
Title: Re: ROM BIOS Services
Post by: MichaelW on April 24, 2006, 12:25:27 AM
If you are asking what programming language is used to code the BIOS, I doubt that it would be machine language even for the earliest PC BIOS. For older systems I think the entire BIOS was probably coded in assembler. For recent systems, I think the service routines are probably still coded in assembler, but other parts of the BIOS may be coded in C.



Title: Re: ROM BIOS Services
Post by: ozzy_85 on April 24, 2006, 04:16:46 AM
thnx
Title: Re: ROM BIOS Services
Post by: Wistrik on April 24, 2006, 06:28:09 PM
A clarification, if you don't mind,

Machine Language consists of the raw numeric values the processor actually sees and uses.

Assembly Language consists of mnemonics and other human memory aids which are assembled into machine language.

The source code is in assembly language, but the final executable (or memory/ROM code) is in machine language.

I'd imagine C++ could be used for user interfaces in BIOS ROMs these days, but timing sensitive stuff is best done in assembly, and there's a lot of that in the BIOS. It's also compact and easier to fit into 64k or 128k of system RAM.
Title: Re: ROM BIOS Services
Post by: Mark_Larson on April 25, 2006, 02:47:07 AM

  99% of the Dell BIOS is written in assembly language.  The Dell  server BIOS also has a CMOS Setup ( GUI) that is written in C.  EFI is Intel's attempt to write the whole BIOS in C ( well parts of it are in assembler).  Intel Macs and Itanium both support EFI.