Hi GOTO.
But think about: why can we distribute assembler only code in linux kernel? It's near to binary form (objdump -d is your friend).
It's not. The difference is that we can always insert another asm statement anywhere (of course changing the way the function works) and still have it assemble and unless we goofed up it'll still run. mov ax,ax for instance won't do a thing. We can insert that anywhere we wish without changing anything. The assembler will take care of any relative jumps and pointers but with a binary firmware, try to insert a byte into it (not CHANGE one, INSERT one), even if you know just insert a NOP somewhere - and see what happens. // Stefan