Title: Assembler, Compiler, Interpreter
1Assembler, Compiler, Interpreter
Prepared by Dhimas Ruswanto, BMm
2Lecture Overview
- Assembler
- Compiler
- Interpreter
3assembler
4Assembler
- To convert the assembly language into machine
code. - Translate mnemonic operation codes to their
machine language equivalents. - Assigning machine addresses to symbolic labels.
5Assembler Directives
- 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)
6Working of Assembler
- 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.
7Example 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
8Setting up FASM
- Go to Start -gt Control Panels -gt System -gt
Advanced -gt 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.co
m/assembly/first.php
9Run First Program
- 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
10Run First Program (contd)
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
11Hello World Program
- 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.
12Compiler
13Compiler
- 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
-
14Executables
- 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. -
15Example of Compiler
- 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.
-
16First Program
- Open Quincy 2005.
- File -gt New -gt C Source File -gt OK
- File -gt Save as.. -gt Hello.cpp
- Write the following code
- include ltiostreamgt
- using namespace std
- int main()
-
- cout ltlt "Hello World!" ltlt endl
-
- return 0
-
-
17First Program (contd)
- The first line include ltiostreamgt, 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 ltlt "Hello World!" ltlt 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 -
18INterpreter
19Interpreter
- 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
-
20Compiler vs. Interpreter
21Example of Interpreter
- We use JavaScript language.
- JavaScript engine is specialized computer
software which interprets and executes
JavaScript. Mostly used in web browsers. -
22JavaScript
- Open Notepad -gt Save as.. -gt Name the file as
hello.html - Write the following code
- lthtmlgt
- ltbodygt
- ltscriptgt
- name prompt("Hello World")
- lt/scriptgt
- lt/bodygt
- lt/htmlgt
-
23JavaScript (contd)
- lthtmlgt, open a html page
- ltbodygt, put all the website contents inside
- ltscript), open a script function
- name prompt("Hello World"), shows the Hello
World! Message - lt/scriptgt, close the script function
- lt/bodygt, close the body of a web page
- lt/htmlgt, close a html page
-
24Summary
- 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. -