A
A
Alexander2018-02-05 22:01:50
Programming
Alexander, 2018-02-05 22:01:50

Is firmware/firmware currently in use?

I'm a little confused about how the computer works. The processor can only execute programs written in machine language. What does it mean? When compiled, this means that a certain sequence of bits is created on the storage medium, which, when read, will be understandable to the processor, rather than what is represented in a high-level language. Machine language is the lowest level. But where is the firmware used here? As I understand it, this is some kind of command interpreter for the program that the programmer wrote. But doesn't the compiler immediately translate the program into machine language when compiling? Is an exe file a machine language file? Or does the compiler not translate the program into machine language, but into some language, which is then interpreted by the microprogram? Somewhat confusing and incomprehensible.

Answer the question

In order to leave comments, you need to log in

5 answer(s)
P
pfg21, 2018-02-06
@ThranduilOfTheWoods

exe contains native x86 (or x86-64) code that, until recently, was "hardware" executing on an x86 processor. here x86 code would be the "lowest level".
modern percent is a complex ingenious structure that converts machine x86 code into risc code and executes only it. those. there is a set of hardware risc-cores that emulate the work of the x86 kernel.
here the x86 code will not be the "lowest level", although no one outside the processor knows about it :)
the microcode actually describes the system for converting x86 to risc code.

S
Saboteur, 2018-02-05
@saboteur_kiev

Do not confuse firmware (mostly firmware of different devices that can hardly be called an operating system)
And processor microcode
https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D...
ps and the .exe file does contain binary code (machine code), but besides this, the .exe file, unlike the .com file, is a container with a complex internal structure that allows you to store program code, data (text, dialogs) and graphics ( icons, etc.) and, in principle, any content in general.

K
Konstantin Tsvetkov, 2018-02-05
@tsklab

If, for simplicity, we omit different pipelines and so on, then the processor, in addition to direct commands for controlling the adder and registers, also has additional commands: operations with floating point numbers (the former coprocessor), MMX multimedia control, and so on - essentially subroutines.

Additional Instruction Sets
5a78b7b8dbf37521716326.png

G
Griboks, 2018-02-05
@Griboks

Firmware is when the machine code of a family of processors is compiled into the machine code of a specific processor model. That is, the program is translated into microprogram. Thus, compatibility with "older" programs is maintained.

D
d-stream, 2018-02-06
@d-stream

If it is quite generalized:
the processor can execute machine instructions - the same compiled program.
At the same time, some processors allow you to program machine instructions. It can be called microprograms.
That is, for processors with a "CISC type" architecture, each command (for example, MOV Reg, Mem) is implemented by firmware at the RISC level of the processor level.
With regard to x86, this may appear in terms of "microcodes".

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question