• Assembler • Compiler • Interpreter ASSEMBLER • To convert the assembly language into machine code. • Translate mnemonic operation codes to their machine language equivalents. • Assigning machine addresses to symbolic labels. • The assembler can also process assembler directives. • Assembler directives (or pseudoinstructions) provide instructions to the assembler itself. They are not translated into machine instructions • E.g. • START (specify name and starting address for the program). • END (indicate the end of the source program and (optionally) specify the first executable instruction in the program) • Programmer write a program using a sequence of assemble instructions. • This sequence of assembler instructions, known as the source code/source program, then specified to the assembler program when that program is started. • It translates a source code into machine language. • The output of the assembler program is called the object code or object program. • We use Flat Assembler (FASM) o Download on: o http://flatassembler.net/ o Download for Windows • The Linker is the program that ties all the loose end together and makes a single program out of the pieces. FASM comes with its own built in linker • Go to “Start -> Control Panels -> System - > Advanced -> Environment Variables • Make a new system variable, called include, with value C:\(your directory of fasm folder) • Run fasmw.exe • Note: Please refer to the http://www.friedspace.com/assembly/first.php • Inside FASM, open the EXAMPLES directory, open the directory called HELLO, open the file Hello.asm • Go to Run menu, Compile and Run • The program will assemble and then the pop message box up on the screen include 'win32ax.inc' ; you can simply switch between win32ax, win32wx, win64ax and win64wx here .code start: invoke MessageBox,HWND_DESKTOP,"Hi! I'm the example program!",invoke GetCommandLine,MB_OK invoke ExitProcess,0 .end start • First line, win32ax.in is a special macro file. • The next line, .code tells the assembler we are going to include some code now. • The line start: is a label. It gives a name to one of the lines. • The program is ended with the .end directive. The execution of the program will begin at this point • The remaining two line are calls to the Windows API to tell it to display a message box and then quit. COMPILER • A program that changes source code (highlevel language) to object code which that can be executed by a machine. • Compiler: o Checks syntax of program o Checks at a time all the program • Primary reason for compiling source code is to create an executable program • Examples of compiler based language: • C, C++, JAVA • Executables: Files that actually do something by carrying out a set of instructions. • E.g., .exe files in Windows • Once the executable is there, it can be called by the user to process the given inputs to a program and produce the desired outputs. • Some of examples of Compiler: o Microsoft Visual Studio o BlueJ o Quincy 2005 • We use Quincy 2005 (Open Source) • Link: http://www.codecutter.net/tools/quincy/ • We use C++ programming language. • Open Quincy 2005. • File -> New -> C++ Source File -> OK • File -> Save as.. -> Hello.cpp • Write the following code: #include <iostream> using namespace std; int main() { cout << "Hello World!" << endl; return 0; } • The first line #include <iostream>, input/output library • The second line using namespace std; , allows us to group a set of global classes, objects and/or functions under a name • int main() { }, the main function of program • cout << "Hello World!" << endl; print the “Hello World!” message to the screen. • return 0;, terminate the main function of program. A return value of 0 means that the program finished correctly INTERPRETER • A computer program that executes instructions written in a programming language and do not produces the executable file. • Interpreter: o Checks the keywords of a program o Taking one instruction at a time and convert it into machine language before taking upon the next instruction. • Examples of interpreter based language: o PHP, JavaScript, BASIC • We use JavaScript language. • JavaScript engine is specialized computer software which interprets and executes JavaScript. Mostly used in web browsers. • Open Notepad -> Save as.. -> Name the file as hello.html • Write the following code: <html> <body> <script> name = prompt("Hello World") </script> </body> </html> • • • • <html>, open a html page <body>, put all the website contents inside <script), open a script function name = prompt("Hello World"), shows the Hello World! Message • </script>, close the script function • </body>, close the body of a web page • </html>, close a html page • Assembler = To convert the assembly language into machine code. • Compiler = A program that changes source code (high-level language) to object code which that can be executed by a machine. • A computer program that executes instructions written in a programming language and do not produces the executable file.