|
|---|
AssemblyReference |
![]() Assembly is the direct one to one mapping of machine code to mnemonics. Machine code is instructions that are interpreted directly by a CPU. Assembly is often referred to as Assembly Language, this is a more accurate and less ambiguous name, throughout this site though, Assembly Language will generally be called Assembly, as ambiguity is removed due to context. An assembler is a program that is used to convert Assembly into machine code, an assembler does not have to be written in Assembly to achieve this end. Machine CodeMachine code, or machine language, is a numerical expression of instructions, these numbers or sequences of numbers are used directly by the CPU, and other electronic components in a computer, to execute the commands specified. Machine Code is not often used to code in, as of course it is quite complex having to remember what each number in a large collection of numbers represents, so instead Assembly is used, and an Assembler is used to convert the mnemonic assembly into machine code. A debugger where the source code is not present, will generally convert in the opposite direction from machine code to an assembly dialect. Assembly and ChipsEach chip (CPUs mainly) manufacturer has to express the commands each chip can handle, and this will normally both the machine code and the mnemonic in assembly. From this point, compiler makers can then update their compilers if they wish to support that chip. So, Assembly and Machine Code is fundamental in the line of actually producing any software, a virtual machine, for example, will generally be written in a cross platform language such as C (with parts perhaps being in assembler), and for that virtual machine to be built it will require a compilation process which has a target that defines the native machine. Assembly and Other LanguagesAssembly is the root for most programs, machine code was used initially, but once a basis for computing was in place, an assembler would have been written in machine code, and then high level language compilers would have then been written in assembler, until they could be written in their own language (a technique and point often referred to as language bootstrapping). All programs reduce to machine code, no matter what generation or level they are. And so understanding assembler (which is a direct mapping of machine code), is therefore very useful in understanding any other program. Assembly is often taught in computer science degrees, though a lot find the going rather hard, and often the advantages of a good grounding in Assembly is missed. Knowing Assembly improve programming in any other programming language, it enables you to see and understand what is actually going on in the hardware that a program is running on. But, you don't need to know Assembly to program, and you don't even need to know what hardwares your program will run on, if you use certain higher level programming languages, Assembly will just improve your programming it is not mandatory. Assembly is a fairly hard programming language to understand, and it does take a fair amount of time to appreciate what is going on. If you are interested in top performance programs, then it doesn't get much better than assembly, if you need to know exactly what is happening in a system, then assembly is nearly required. And Assembly is quite good fun, and can be relatively fast to program in once a library of code and a style of assembly coding has been developed. Assembly coding though is error prone so careful testing (which should be done no matter the language), needs to go hand in hand with Assembly. Careful, well thought out and defined design of programs also helps a lot. | Assembly |
![]() | ![]() |
| Assembly Developer | C Developer |
![]() | ![]() | ![]() |
| Development | System Development | Application Development |
Poised Solutions IT Practice offers development in a wide range of programming languages, Application Development and Graphic Design are also offfered.
Poised Solutions Assembly Developer for Hire.
© Poised Solutions Copyright 2009
Assembly Reference Site Designed and Developed by Poised Solutions