: Hey, you all computer hardware loving guys,,,,,,,Please help me, boy
: solving my spurious doubts.....
: Q1:-How hardwired programming and microprograaming takes place...?
: [I'd read before that, miroprogramming is used to get the
: required o/p from hardware, without disturbing it]
Microprograms are written in a very low assembly language (microcode) that is specific to the microcontroller. It is stored in the chip's dye, normally in a control store memory area executed by the chip. As microcode is very specific to the chip, it either implements a macrocode or an instruction set for the chip (depending on how complex the microcode is).
What software sees to control the chip is the instruction set that has now been created.
: Q:- what is the diff b/n Assembly language and C language?
: [difference regarding their application]
C is very portable and can be used on many different types of computer systems--from PCs, Macs, game consoles, PDAs, cell phones, all the way to supercomputers.
Assembly is very non-portable and is specific to the device it is used for. ie, perhaps a PC architecture. (As it is with x86 assembly language.) It is usually used where high level languages cannot be used (Special instructions (ie, LGDT, LIDT, etc), binary programs (bootloaders), ..)
: Q:- Can I use C lang. for microcontrol programming?
I never seen it, no. Its useually done in microcode.
: Q:- Is there any interface b/n Hardware and Software?
Of course, else it would not be possible for software to control hardware. The interface is specific to the architecture though.
On the x86 architecture (Most PCs), the architecture implements port mapped I/O, which allows us to access hardware controller registers from software instructions (IN and OUT).
For example, taken from my bootloader written in x86 assembly language, the following code gets the status of the keyboard by reading the onboard keyboard controllers status register mapped to I/O address 0x60 by the POST hardware initialization:
xor ax, ax ; clear ax
in al, 60h ; read in status byte
[.:EvolutionEngine][.:MicroOS Operating System][Website :: OS Development Series]