{"id":822,"date":"2015-12-17T12:55:34","date_gmt":"2015-12-17T09:55:34","guid":{"rendered":"https:\/\/sobbayi.com\/?p=822"},"modified":"2015-12-17T12:55:34","modified_gmt":"2015-12-17T09:55:34","slug":"a-quick-overview-of-an-assembly-language","status":"publish","type":"post","link":"http:\/\/local.brightwhiz\/a-quick-overview-of-an-assembly-language\/","title":{"rendered":"A Quick Overview of an Assembly Language"},"content":{"rendered":"

Assembly Language is a low-level programming language specific to a certain computer architecture.<\/p>\n

This low-level programming Language is also known as Assembler or simply ASM is used primarily in programmable devices and computers. Therefore Assembly Language is not very a good candidate when it comes to portability of computer programs and device drivers and other binaries.<\/p>\n

Portability is a feature of high-level programming languages which normally hides the computer architecture implementations from the programmer. This is done by wrapping the language instructions behind dynamic or static libraries and through run-time environments. Assembly language and other low-level languages do not really do this. That is where we make the distinction.<\/p>\n

Getting Started with Assembly Language<\/h2>\n

The Assembler commands also known as Opcode mnemonics and extended mnemonics among other terms are usually one-to-one mappings of the specific computer architecture’s machine code. This mapping is done through the machine language instruction sets. The following is an example of a single instruction set in x86 ASM.<\/p>\n

Mov EAX, 10<\/pre>\n

What the programmer writes is converted to the actual machine language using a tool called an assembler. A good example of such x86 assemblers are but not limited to NASM or The Netwide Assembler<\/a> which is cross-platform and MASM or Microsoft Macro Assembler<\/a> which only works for Microsoft Windows and Ms-Dos operating systems.<\/p>\n

What is Machine Language?<\/h2>\n

Machine Language in the simplest terms is a series of 0s and 1s in certain orders that can be interpreted by the specific computer or device architecture it has been designed for. Machine Language is difficult for a human being to work with directly and therein lies the case for the use of low level and high-level programming languages that abstract this fact via assemblers and compilers.<\/p>\n

Assemblers have generally been around much longer than compilers. One of the reasons was the assemblers have always been easier to build taking into account the one-to-one mapping from assembly to machine language. Compilers, on the other hand, are more complex as they have to convert the high-level language code to either assembly, bytecode or object code among others.<\/p>\n

What are the Advantages or Learning Assembly Language?<\/h2>\n