In what programming language BIOS is written and what languages are used to create firmware?

In what programming language BIOS is written and what languages are used to create firmware?

Hello,

i'm preparing a school course about Programming Languages and with your help hope to understand what programming languages are used to create firmware and BIOS in particular. In the internet there are many articles about this argument, but none with references to some official documentation - all these articles seems some of point of view of the person who wrote it...

Please help me understand :

1) in what programming language is created BIOS (the first software executed when PC starts) (programming language of legacy BIOS and modern BIOS) ?

2) what programming languages are used to create firmware ?

3) where can i find some good guide/documentation about this arguments ?

Thank you in advance!

Have a nice day,

Dmitri.

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Best Reply

Hi Dmitri,

1) in what programming language is created BIOS (the first software executed when PC starts) (programming language of legacy BIOS and modern BIOS) ?

Answer: Legacy as well a UEFI (modern BIOS) will start at the reset vector in assembly language. For Intel IA32 and X64 this is in 16 bit, segment - offset mode and starts at the address: 0xffff:0000.  For the UEFI BIOS, this mode is quickly changed to 32 bit flat address mode and then jumps into source code that is in "C" programming language.

2) what programming languages are used to create firmware ?

Answer: Most of the UEFI BIOS is in "C"

3) where can i find some good guide/documentation about this arguments ?

Answer: For the UEFI BIOS please start with the http://tianocore.org where there are many wiki pages and documentation about the UEFI and EDK II BIOS. The following on-line training is recommended: https://github.com/tianocore/tianocore.github.io/wiki/UEFI%20EDKII%20Learning%20Dev.  Lessons 0-5 walk through the UEFI Spec.

Another resource is http://firmware.intel.com

Hello LAURIE,

thank you very-very much for so exhaustive and precise response !!! :)

Thank you again !
Have a nice day, 

Dmitri.

Hello LAURIE,

just to be secure to understand... Can I deduct from your answer that :

1) Legacy BIOS is written in assembly language

2) and UEFI BIOS is written in "C"

?

Thank you !!!

Dmitri.

Hi Dmitri,

Yes, for the most part legacy BIOS for Intel Architecture is written in assembly language and  the UEFI BIOS is mostly written in "C" programming language.

Leave a Comment

Please sign in to add a comment. Not a member? Join today