240 likes | 390 Views
Assembler, Compiler, Interpreter. Skill Area 311 Part D. Prepared by Dhimas Ruswanto , BMm. Lecture Overview. Assembler Compiler Interpreter. assembler. Assembler. To convert the assembly language into machine code.
E N D
Assembler, Compiler, Interpreter Skill Area 311 Part D Prepared by DhimasRuswanto, BMm
Lecture Overview • 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 pseudo-instructions) 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) Assembler Directives
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. Working of Assembler
We use Flat Assembler (FASM) • Download on: • http://flatassembler.net/ • 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 Example of Assembler
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 Setting up FASM
Inside FASM, open the EXAMPLES directory, open the directory called HELLO, open the file Hello.asm • Go to Run menu, Compileand Run • The program will assemble and then the pop message box up on the screen Run First Program
Run First Program (cont’d) 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, .codetells 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. Hello World Program
A program that changes source code (high-level language) to object code which that can be executed by a machine. • Compiler: • Checks syntax of program • 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 Compiler
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. Executables
Some of examples of Compiler: • Microsoft Visual Studio • BlueJ • Quincy 2005 • We use Quincy 2005 (Open Source) • Link: http://www.codecutter.net/tools/quincy/ • We use C++ programming language. Example of Compiler
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; • } First Program
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 First Program (cont’d)
A computer program that executes instructions written in a programming language and do not produces the executable file. • Interpreter: • Checks the keywords of a program • Taking one instruction at a time and convert it into machine language before taking upon the next instruction. • Examples of interpreter based language: • PHP, JavaScript, BASIC Interpreter
We use JavaScript language. • JavaScript engine is specialized computer software which interprets and executes JavaScript. Mostly used in web browsers. Example of Interpreter
Open Notepad -> Save as.. -> Name the file as hello.html • Write the following code: • <html> • <body> • <script> • name = prompt("Hello World") • </script> • </body> • </html> JavaScript
<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 JavaScript (cont’d)
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. Summary