News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

ROM BIOS Services

Started by ozzy_85, April 23, 2006, 04:37:28 PM

Previous topic - Next topic

ozzy_85

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...

MichaelW

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.



eschew obfuscation

ozzy_85


Wistrik

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.

Mark_Larson


  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.


BIOS programmers do it fastest, hehe.  ;)

My Optimization webpage
htttp://www.website.masmforum.com/mark/index.htm