SlideShare una empresa de Scribd logo
1 de 13
LOVELY PROFESSIONAL UNIVERSITY
SYSTEM SOFTWARE



TERM PAPER

       TOPIC: MICRO ASSEMBLER
SUBMITTED BY:
SANJAY KUMAR CHAKRAVARTI

ROLL:A10

REG:11006964

SUBJECT CODE: CSE318

SECTION:K2R12

                                           SUBMITTED TO:
                                                 MISS. BALWINDER KAUR

                                                 DEPT. OF COMPUTER SCIENCES

                                                       LPU, PHAGWARA
Acknowledgement


Apart from the efforts of me, the success of this Term paper depends largely on the
encouragement and guidelines of many others. I take this opportunity to express my gratitude to
the people who have been instrumental in the successful completion of this Term Paper.
I would like to show my greatest appreciation to Miss. Balwinder Kaur. I can’t say thank you
enough for his tremendous support and help. I feel motivated and encouraged every time I attend
his meeting. Without his encouragement and guidance this project would not have materialized.
The guidance and support received from all the team members including Shubham Patel,
Raghubendra Singh, who contributed and are contributing to this project, was vital for the
success of the project. I am grateful for their constant support and help.
ABSTRACT
Micro assembler is a sub part of assembler. In this Term paper the focus on Assembler and
Micro Assembler. The working of Micro Assembler its uses in micro Programming, What are the
application of Micro assembler are described. This paper also include the short description of
Micro Assembly Language (MAL). Assembly language is also valuable in reverse engineering,
since many programs are distributed only in machine code form, and machine code is usually
easy to translate into assembly language and carefully examine in this form, but very difficult to
translate into a higher-level language. Tools such as the Interactive Disassembler make
extensive use of disassembly for such a purpose. The micro programmed Data General Eclipse
S/200 computer is available with a writable control store. The WCS feature of the Eclipse is
having extension of the micro programmed control logic of the computer's central processing
unit. It allows a user to implement specialized instructions at a very low level
CONTENTS




  TOPIC                                                                       PAGE NUMBER
1. INTRODUCTION             ----------------------------------------------------- 05
2. ASSEMBLY LANGUAGE --------------------------------------------                   06-07
3. ASSEMBLER -----------------------------------------------------------            07-08
4. MICROASSEMBLER -------------------------------------------------                 08-09
5. MAL ----------------------------------------------------------------------       10-11
6. APPLICATIONS --------------------------------------------------------            12
7. BENEFITS         -------------------------------------------------------------   12
8. REFRENCES ------------------------------------------------------------           13
INTRODUCTION


A micro assembler is a computer program that helps prepare a micro program to control the low
level operation of a computer in much the same way an assembler helps prepare higher level
code for a processor. The difference is that the micro program is usually only developed by the
processor manufacturer and works intimately with the hardware. The micro program defines the
instruction set any normal program (including both application programs and operating
systems) is written in. The use of a micro program allows the manufacturer to fix certain
mistakes, including working around hardware design errors, without modifying the hardware.
Another means of employing micro assembler-generated micro programs is in allowing the same
hardware to run different instruction sets. After it is assembled, the micro program is then loaded
to a store to become part of the logic of a CPU's control unit. Some micro assemblers are more
generalized and are not targeted at single computer architecture. For example, through the use
of macro-assembler-like capabilities, Digital Equipment Corporation used their MICRO 2 micro
assembler for a very wide range of computer architectures and implementations. If a given
computer implementation supports a writeable control store, the micro assembler is usually
provided to customers as a means of writing customized microcode.
                                       Computer programs (software programs) are instructions
for a computer .A computer requires programs to function, typically executing the program's
instructions in a central processor. The program has that the computer can use directly to
execute the instructions. The same program in its human-readable source form, from which
executable programs are derived , enables a programmer to study and develop its algorithms.
Computer source code is often written by professional computer programmers. Source code is
written in a programming language that usually follows one of two main paradigms: imperative
or declarative programming. Source code may be converted into an executable file (sometimes
called an executable program or a binary) by a compiler. Alternatively, computer programs may
be executed by a central processing unit with the aid of an interpreter, or may be embedded
directly into hardware.
ASSEMBLY LANGUAGE




A program written in assembly language it basically contain of a series of instructions-
mnemonics that correspond to a stream of executable instructions, when translated by an
assembler that can be loaded into memory and executed.
For example, anx86/IA-32processor execute the below instruction as given in machine language.
Binary: 10110000 01100001 (Hexadecimal: B0 61)
The mnemonic "move" it tells the opcode1011tomovesthe value in the 2nd operand into the
register. Transforming the assembly language into the machine code is done by an assembler,
and the vice versa by this assembler. In High-level language, there is usually a one to one
relation between simple assembly logics and machine language instructions. But, in few cases,
an assembler provides instructions which will expand into several machine code instructions to
provide its functionality. Each computer structure and processor design has its own machine
understanding language. Each instruction is simple enough to be executed using a relatively
small number of electronic circuits. System may differ by the type of operations they support. For
example, a new 64-bit (AMD processor) machine will have different structure from a 32-bit
(Intel processor) machine. They also have different size structure and the different storage
structure. Multiple collection of mnemonics codes or assembly-language code may exist for a
single instruction set, typically instantiated in different assembler programs. In these cases, the
most popular one is usually that supplied by the manufacturer and used in its documentation.
ASSEMBLER




The advanced assembler creates object code by translating assembly instruction mnemonics into
op codes, and by resolving symbolic names for memory locations and other entities. The use of
symbolic references is only the key feature of assemblers, saving tuff calculations and manual
address. Most assemblers also include macro facilities for performing textual substitution.
To generate common short sequences of instructions to run inline, instead of in a subroutine.
Assemblers are easier to write than compilers for HLL. Advanced assemblers, like RISC based
architectures, such as MIPS, Sun SPARC, and HPPA-RISC, it optimize instruction scheduling to
exploit the CPU pipeline efficiently.
There are two types of assemblers, based upon how many passes through the source are needed
to produce the executable program. One-pass assemblers go through the source code once at a
time and assume that all symbols will be defined before any instruction that references them.
Two-pass assemblers create a table with all unresolved symbols in the first pass, and then use
the 2nd pass to resolve these addresses.
The advantage in the one-pass assemblers is about its speed, which is not as important as it once
was with advances in computer speed and capabilities. The advantage of the two-pass assembler
is that symbols can be defined anywhere in the program source so it's an easier way to
understand the user. Its results to the program can be defined in a more logical and meaningful
way. It will make two-pass assembler programs easier to read and maintain.
More sophisticated high-level assemblers provide language abstractions such as:
Advanced control structures.
High-level procedure declarations and invocations.
High-level abstract data types, including structures, unions, classes, and sets.
Sophisticated macro processing.
Object-Oriented features such as encapsulation, polymorphism, inheritance, interfaces.
Here's how it works:
Most computers come with a specified set of very basic instructions that correspond to the basic
machine operations that the computer can perform. For example, a "Load" instruction causes
the processor to move a string of bits from a location in the processor's memory to a special
holding place called a register.
1.The programmer can write a program using a sequence of these assembler instructions.
2. This sequence of assembler instructions, known as the source code or source program, is then
specified to the assembler program when that program is started.
3. The assembler program takes each program statement in the source program and generates a
corresponding bit stream or pattern.
4. The output of the assembler program is called the object code or object program relative to
the input source program.
5. The object program can then be run whenever desired.
Earlier programmers actually wrote programs in machine code, but assembler languages or
instruction sets were soon developed to speed up programming field. Today, assembler
programming is used only where very efficient control over processor operations is needed. It
requires knowledge of a particular computer's instruction set. Historically, most programs have
been written in "higher-level" languages such as COBOL, FORTRAN, PL/I, and C. These
languages are easier to learn and faster to write programs with than assembler language.




                            MICROASSEMBLER


A micro assembler also called as meta-assembler. It is a kind of program which helps prepare a
micro program to control the low level operation of a computer in much the same way an
assembler helps prepare higher level code for a processor. The use of a micro program allows
the manufacturer to fix certain mistakes, in hardware design also. Another means of employing
micro assembler-generated micro programs is in allowing the same hardware to run different
instruction sets. When it is assembled, the micro program is then loaded to a control store to
become part of the logic of a CPU's control unit.
Some micro assemblers are more generalized and are not targeted at single computer architecture.
For example, the use of macro-assembler likes capabilities, Digital Equipment Corporation used
their MICRO2 micro assembler for a very wide range of computer architectures.




THE ASSEMBLER USED BY THE MICROSOFT (MASM)


MASM is a Microsoft's assembler and abbreviation used for it is "Macro Assembler." MASM is a
very powerful macro feature, and is capable of writing very low-level syntax, and pseudo-high-
level code with its macro feature. MASM 6.15 is currently available as a free-download from
Microsoft site.
MASM is a one of the Microsoft development tools that are targeted 16-bit, 32-bit and 64-bit
platforms. Versions 6.1 and 6.11 included Phar Lap's TNT DOS extender so that MASM could
run in MS-DOS.
   1. MASM will write in Intel Syntax.
   2. MASM is used by Microsoft to implement some low-level portions of its Windows
      Operating systems.
   3. MASM, contrary to popular belief, has been in constant development since 1980, and is
      upgraded on a needs-basis.
   4. MASM has always been made compatible by Microsoft to the current platform, and
      executable file types.
   5. MASM currently supports all Intel instruction sets, including SSE2.
MAL (MICRO ASSEMBLY LANGUAGE)


It describes about the lexical, syntactic, and semantic elements of the language, and gives a
focus on microprogramming with the mic1 micro-assembler.



Lexical:


Most assembly language such as Micro-Assembly Language is a line-oriented language. Each
micro-instruction is generally defined on a single line of the program file. The end-of-line is
generally significant. It is a case-sensitive. For example, "AND" is a reserved word
Corresponding to a bitwise operation of the mic1 ALU, while "and" is not reserved and may be
used as a label.



Comments


The comments will begin with two slash characters ("//") and continue to the end of the line.
Blank lines and lines consisting only of white space and comments are ignored by the micro-
assembler.



Directive


Directives for the micro-assembler begin with a period character (".") and may contain
alphabetic characters. There are two micro-assembler directives: ".default" and ".label".
Directives are used to provide guide the behavior of the micro-assembler, and do not correspond
with words in the control store.



Reserved Words
The names of registers and control lines are reserved, as are the words "if", "else", "goto",
"nop", "AND", "OR", and "NOT". For the mic1 architecture, the following words are reserved
and may not be used as statement labels:
MAR
MDR
PC
Fetch
If
Else
goto
nop
AND
OR
NOT




MORE ABOUT THE MICRO ASSEMBLER




Micro Assembler is Integrated Development Environment for assembly programming.
Micro Assembler has a much easier syntax than any of the major assemblers, a great
combination for beginners. Micro Assembler is a Windows based application so you can enjoy
user-friendly Windows environment.
APPLICATIONS


Hard-coded assembly language is typically used in a system's boot ROM(BIOS on IBM-
compatible PC systems). This low-level code is used, among other things, to initialize and test
the system hardware prior to booting the OS, and is stored in ROM. Once a certain level of
hardware initialization has taken place, execution transfers to other code, typically written in
higher level languages; but the code running immediately after power is applied is usually
written in assembly language. The same is true of most boot loaders.
Many compilers render high-level languages into assembly first before fully compiling, allowing
the assembly code to be viewed for debugging and optimization purposes. Relatively low-level
languages, such as C, often provide special syntax to embed assembly language directly in the
source code. Programs using such facilities, such as the Linux kernel, can then construct
abstractions utilizing different assembly language on each hardware platform. The system's
portable code can then utilize these processor-specific components through a uniform interface.
Assembly language is also valuable in reverse engineering, since many programs are distributed
only in machine code form, and machine code is usually easy to translate into assembly
language and carefully examine in this form, but very difficult to translate into a higher-level
language. Tools such as the Interactive Disassembler make extensive use of disassembly for such
a purpose.
A particular niche that makes use of assembly language is the demo scene. Certain competitions
require the contestants to restrict their creations to a very small size (e.g. 256B, 1KB, 4KB or 64
KB), and assembly language is the language of choice to achieve this goal. When resources,
particularly CPU-processing constrained systems, like the earlier Amiga models, and the
Commodore 64, are a concern, assembler coding is a must: optimized assembler code is written
"by hand" and instructions are sequenced manually by the coders in an attempt to minimize the
number of CPU cycles used; the CPU constraints are so great that every CPU cycle counts.
However, using such techniques has enabled systems like the Commodore 64 to produce real-
time3D graphics with advanced effects, a feat which might be considered unlikely or even
impossible for a system with a 0.99MHzprocessor


                             BENEFITS OF IT:
The micro programmed Data General Eclipse S/200 computer is available with a writable
control store. The WCS feature of the Eclipse is having extension of the micro programmed
control logic of the computer's central processing unit. It allows a user to implement specialized
instructions at a very low level. Its use is however, discouraged since Data General does not
provide software support for the WCS feature.




                          REFRENCES


http://www.ontko.com/mic1/mal.html#1
http://en.wikipedia.org/wiki/Microassembler
http://findebookee.com/adv.php?q=microassembler%20ppt

Más contenido relacionado

La actualidad más candente

How to create a folder, create a folder inside it, and add collections
How to create a folder, create a folder inside it, and add collectionsHow to create a folder, create a folder inside it, and add collections
How to create a folder, create a folder inside it, and add collections
Trusted Coaching
 
magnetic and optic based storage devices
magnetic and optic based storage devicesmagnetic and optic based storage devices
magnetic and optic based storage devices
Sarab Singh
 
External storage devices
External storage devicesExternal storage devices
External storage devices
Pankaj Gupta
 

La actualidad más candente (20)

word processor
word processor word processor
word processor
 
Access ppt
Access ppt Access ppt
Access ppt
 
Pendrive
PendrivePendrive
Pendrive
 
First pass of assembler
First pass of assemblerFirst pass of assembler
First pass of assembler
 
Presentation on computer data storage
Presentation on computer data storage Presentation on computer data storage
Presentation on computer data storage
 
Mac os casestudy
Mac os casestudyMac os casestudy
Mac os casestudy
 
Introduction to Programming Languages
Introduction to Programming LanguagesIntroduction to Programming Languages
Introduction to Programming Languages
 
How to create a folder, create a folder inside it, and add collections
How to create a folder, create a folder inside it, and add collectionsHow to create a folder, create a folder inside it, and add collections
How to create a folder, create a folder inside it, and add collections
 
magnetic and optic based storage devices
magnetic and optic based storage devicesmagnetic and optic based storage devices
magnetic and optic based storage devices
 
External storage devices
External storage devicesExternal storage devices
External storage devices
 
1 basic computer course
1 basic computer course1 basic computer course
1 basic computer course
 
Loaders
LoadersLoaders
Loaders
 
Flash drive
Flash driveFlash drive
Flash drive
 
Presentation of ms word
Presentation of ms wordPresentation of ms word
Presentation of ms word
 
On-Device AI
On-Device AIOn-Device AI
On-Device AI
 
Intro to Microsoft Excel 2007
Intro to Microsoft Excel 2007Intro to Microsoft Excel 2007
Intro to Microsoft Excel 2007
 
Presentation on storage device
Presentation on storage devicePresentation on storage device
Presentation on storage device
 
Basic Computer Parts.pptx
Basic Computer Parts.pptxBasic Computer Parts.pptx
Basic Computer Parts.pptx
 
Spreadsheet Concepts
Spreadsheet ConceptsSpreadsheet Concepts
Spreadsheet Concepts
 
PEN DRIVES
PEN DRIVES PEN DRIVES
PEN DRIVES
 

Destacado

Vechicle accident prevention using eye bilnk sensor ppt
Vechicle accident prevention using eye bilnk sensor pptVechicle accident prevention using eye bilnk sensor ppt
Vechicle accident prevention using eye bilnk sensor ppt
satish 486
 

Destacado (9)

Masm tutorial
Masm tutorialMasm tutorial
Masm tutorial
 
MASM -UNIT-III
MASM -UNIT-IIIMASM -UNIT-III
MASM -UNIT-III
 
Assembly
AssemblyAssembly
Assembly
 
EYE BLINK SENSOR TO CONTROL ACCIDENTPpt main
EYE BLINK SENSOR TO CONTROL ACCIDENTPpt mainEYE BLINK SENSOR TO CONTROL ACCIDENTPpt main
EYE BLINK SENSOR TO CONTROL ACCIDENTPpt main
 
Phases of the Compiler - Systems Programming
Phases of the Compiler - Systems ProgrammingPhases of the Compiler - Systems Programming
Phases of the Compiler - Systems Programming
 
ACCIDENT DETECTION AND VEHICLE TRACKING USING GPS,GSM AND MEMS
ACCIDENT DETECTION AND VEHICLE TRACKING USING GPS,GSM AND MEMSACCIDENT DETECTION AND VEHICLE TRACKING USING GPS,GSM AND MEMS
ACCIDENT DETECTION AND VEHICLE TRACKING USING GPS,GSM AND MEMS
 
Driver Fatigue Monitoring System Using Eye Closure
Driver Fatigue Monitoring System Using Eye ClosureDriver Fatigue Monitoring System Using Eye Closure
Driver Fatigue Monitoring System Using Eye Closure
 
Accident prevention using bluetooth tech and eye blink sensor
Accident prevention using bluetooth tech and eye blink sensorAccident prevention using bluetooth tech and eye blink sensor
Accident prevention using bluetooth tech and eye blink sensor
 
Vechicle accident prevention using eye bilnk sensor ppt
Vechicle accident prevention using eye bilnk sensor pptVechicle accident prevention using eye bilnk sensor ppt
Vechicle accident prevention using eye bilnk sensor ppt
 

Similar a Micro Assembler

EVOLUTION OF SYSTEM
EVOLUTION OF SYSTEM EVOLUTION OF SYSTEM
EVOLUTION OF SYSTEM
Sahil Garg
 
Introduction to Embedded Systems and Microcontrollers
Introduction to Embedded Systems and MicrocontrollersIntroduction to Embedded Systems and Microcontrollers
Introduction to Embedded Systems and Microcontrollers
Islam Samir
 
The role of the cpu in the operation
The role of the cpu in the operationThe role of the cpu in the operation
The role of the cpu in the operation
mary_ramsay
 
A generic log analyzer for auto recovery of container orchestration system
A generic log analyzer for auto recovery of container orchestration systemA generic log analyzer for auto recovery of container orchestration system
A generic log analyzer for auto recovery of container orchestration system
Conference Papers
 

Similar a Micro Assembler (20)

EVOLUTION OF SYSTEM
EVOLUTION OF SYSTEM EVOLUTION OF SYSTEM
EVOLUTION OF SYSTEM
 
Microassembler a10
Microassembler a10Microassembler a10
Microassembler a10
 
Chap 2_ans.pdf
Chap 2_ans.pdfChap 2_ans.pdf
Chap 2_ans.pdf
 
Introduction to Embedded Systems and Microcontrollers
Introduction to Embedded Systems and MicrocontrollersIntroduction to Embedded Systems and Microcontrollers
Introduction to Embedded Systems and Microcontrollers
 
System Programming VV Notes.pdf
System Programming VV Notes.pdfSystem Programming VV Notes.pdf
System Programming VV Notes.pdf
 
Ch 1.pptx
Ch 1.pptxCh 1.pptx
Ch 1.pptx
 
[EN] PLC programs development guidelines
[EN] PLC programs development guidelines[EN] PLC programs development guidelines
[EN] PLC programs development guidelines
 
Crusoe processor
Crusoe    processorCrusoe    processor
Crusoe processor
 
Software
SoftwareSoftware
Software
 
Spr ch-01
Spr ch-01Spr ch-01
Spr ch-01
 
Hm system programming class 1
Hm system programming class 1Hm system programming class 1
Hm system programming class 1
 
The role of the cpu in the operation
The role of the cpu in the operationThe role of the cpu in the operation
The role of the cpu in the operation
 
An Optimising Compiler For Generated Tiny Virtual Machines
An Optimising Compiler For Generated Tiny Virtual MachinesAn Optimising Compiler For Generated Tiny Virtual Machines
An Optimising Compiler For Generated Tiny Virtual Machines
 
A generic log analyzer for auto recovery of container orchestration system
A generic log analyzer for auto recovery of container orchestration systemA generic log analyzer for auto recovery of container orchestration system
A generic log analyzer for auto recovery of container orchestration system
 
SSD Mod 2 -18CS61_Notes.pdf
SSD Mod 2 -18CS61_Notes.pdfSSD Mod 2 -18CS61_Notes.pdf
SSD Mod 2 -18CS61_Notes.pdf
 
Co question 2008
Co question 2008Co question 2008
Co question 2008
 
Embedded Linux
Embedded LinuxEmbedded Linux
Embedded Linux
 
Introduction to Microcontrollers
Introduction to MicrocontrollersIntroduction to Microcontrollers
Introduction to Microcontrollers
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
 

Más de Sanjay Kumar Chakravarti (7)

IMPLEMENTATION OF AUTO KEY IN C++
IMPLEMENTATION OF AUTO KEY IN C++IMPLEMENTATION OF AUTO KEY IN C++
IMPLEMENTATION OF AUTO KEY IN C++
 
Design A Screen saver in c on Moving Train with Side view.
Design A Screen saver in c on Moving Train with Side view.Design A Screen saver in c on Moving Train with Side view.
Design A Screen saver in c on Moving Train with Side view.
 
Design A Screen saver in c on Moving Train with Side view.
Design A Screen saver in c on Moving Train with Side view.Design A Screen saver in c on Moving Train with Side view.
Design A Screen saver in c on Moving Train with Side view.
 
Graphical representation of Stack
Graphical representation of StackGraphical representation of Stack
Graphical representation of Stack
 
Design problem
Design problemDesign problem
Design problem
 
Computer Network
Computer NetworkComputer Network
Computer Network
 
Structured Analysis and Structured Design
Structured Analysis and Structured DesignStructured Analysis and Structured Design
Structured Analysis and Structured Design
 

Último

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 

Último (20)

Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Third Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptxThird Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 

Micro Assembler

  • 1. LOVELY PROFESSIONAL UNIVERSITY SYSTEM SOFTWARE TERM PAPER TOPIC: MICRO ASSEMBLER SUBMITTED BY: SANJAY KUMAR CHAKRAVARTI ROLL:A10 REG:11006964 SUBJECT CODE: CSE318 SECTION:K2R12 SUBMITTED TO: MISS. BALWINDER KAUR DEPT. OF COMPUTER SCIENCES LPU, PHAGWARA
  • 2. Acknowledgement Apart from the efforts of me, the success of this Term paper depends largely on the encouragement and guidelines of many others. I take this opportunity to express my gratitude to the people who have been instrumental in the successful completion of this Term Paper. I would like to show my greatest appreciation to Miss. Balwinder Kaur. I can’t say thank you enough for his tremendous support and help. I feel motivated and encouraged every time I attend his meeting. Without his encouragement and guidance this project would not have materialized. The guidance and support received from all the team members including Shubham Patel, Raghubendra Singh, who contributed and are contributing to this project, was vital for the success of the project. I am grateful for their constant support and help.
  • 3. ABSTRACT Micro assembler is a sub part of assembler. In this Term paper the focus on Assembler and Micro Assembler. The working of Micro Assembler its uses in micro Programming, What are the application of Micro assembler are described. This paper also include the short description of Micro Assembly Language (MAL). Assembly language is also valuable in reverse engineering, since many programs are distributed only in machine code form, and machine code is usually easy to translate into assembly language and carefully examine in this form, but very difficult to translate into a higher-level language. Tools such as the Interactive Disassembler make extensive use of disassembly for such a purpose. The micro programmed Data General Eclipse S/200 computer is available with a writable control store. The WCS feature of the Eclipse is having extension of the micro programmed control logic of the computer's central processing unit. It allows a user to implement specialized instructions at a very low level
  • 4. CONTENTS TOPIC PAGE NUMBER 1. INTRODUCTION ----------------------------------------------------- 05 2. ASSEMBLY LANGUAGE -------------------------------------------- 06-07 3. ASSEMBLER ----------------------------------------------------------- 07-08 4. MICROASSEMBLER ------------------------------------------------- 08-09 5. MAL ---------------------------------------------------------------------- 10-11 6. APPLICATIONS -------------------------------------------------------- 12 7. BENEFITS ------------------------------------------------------------- 12 8. REFRENCES ------------------------------------------------------------ 13
  • 5. INTRODUCTION A micro assembler is a computer program that helps prepare a micro program to control the low level operation of a computer in much the same way an assembler helps prepare higher level code for a processor. The difference is that the micro program is usually only developed by the processor manufacturer and works intimately with the hardware. The micro program defines the instruction set any normal program (including both application programs and operating systems) is written in. The use of a micro program allows the manufacturer to fix certain mistakes, including working around hardware design errors, without modifying the hardware. Another means of employing micro assembler-generated micro programs is in allowing the same hardware to run different instruction sets. After it is assembled, the micro program is then loaded to a store to become part of the logic of a CPU's control unit. Some micro assemblers are more generalized and are not targeted at single computer architecture. For example, through the use of macro-assembler-like capabilities, Digital Equipment Corporation used their MICRO 2 micro assembler for a very wide range of computer architectures and implementations. If a given computer implementation supports a writeable control store, the micro assembler is usually provided to customers as a means of writing customized microcode. Computer programs (software programs) are instructions for a computer .A computer requires programs to function, typically executing the program's instructions in a central processor. The program has that the computer can use directly to execute the instructions. The same program in its human-readable source form, from which executable programs are derived , enables a programmer to study and develop its algorithms. Computer source code is often written by professional computer programmers. Source code is written in a programming language that usually follows one of two main paradigms: imperative or declarative programming. Source code may be converted into an executable file (sometimes called an executable program or a binary) by a compiler. Alternatively, computer programs may be executed by a central processing unit with the aid of an interpreter, or may be embedded directly into hardware.
  • 6. ASSEMBLY LANGUAGE A program written in assembly language it basically contain of a series of instructions- mnemonics that correspond to a stream of executable instructions, when translated by an assembler that can be loaded into memory and executed. For example, anx86/IA-32processor execute the below instruction as given in machine language. Binary: 10110000 01100001 (Hexadecimal: B0 61) The mnemonic "move" it tells the opcode1011tomovesthe value in the 2nd operand into the register. Transforming the assembly language into the machine code is done by an assembler, and the vice versa by this assembler. In High-level language, there is usually a one to one relation between simple assembly logics and machine language instructions. But, in few cases, an assembler provides instructions which will expand into several machine code instructions to provide its functionality. Each computer structure and processor design has its own machine understanding language. Each instruction is simple enough to be executed using a relatively small number of electronic circuits. System may differ by the type of operations they support. For example, a new 64-bit (AMD processor) machine will have different structure from a 32-bit (Intel processor) machine. They also have different size structure and the different storage structure. Multiple collection of mnemonics codes or assembly-language code may exist for a single instruction set, typically instantiated in different assembler programs. In these cases, the most popular one is usually that supplied by the manufacturer and used in its documentation.
  • 7. ASSEMBLER The advanced assembler creates object code by translating assembly instruction mnemonics into op codes, and by resolving symbolic names for memory locations and other entities. The use of symbolic references is only the key feature of assemblers, saving tuff calculations and manual address. Most assemblers also include macro facilities for performing textual substitution. To generate common short sequences of instructions to run inline, instead of in a subroutine. Assemblers are easier to write than compilers for HLL. Advanced assemblers, like RISC based architectures, such as MIPS, Sun SPARC, and HPPA-RISC, it optimize instruction scheduling to exploit the CPU pipeline efficiently. There are two types of assemblers, based upon how many passes through the source are needed to produce the executable program. One-pass assemblers go through the source code once at a time and assume that all symbols will be defined before any instruction that references them. Two-pass assemblers create a table with all unresolved symbols in the first pass, and then use the 2nd pass to resolve these addresses. The advantage in the one-pass assemblers is about its speed, which is not as important as it once was with advances in computer speed and capabilities. The advantage of the two-pass assembler is that symbols can be defined anywhere in the program source so it's an easier way to understand the user. Its results to the program can be defined in a more logical and meaningful way. It will make two-pass assembler programs easier to read and maintain. More sophisticated high-level assemblers provide language abstractions such as: Advanced control structures. High-level procedure declarations and invocations. High-level abstract data types, including structures, unions, classes, and sets. Sophisticated macro processing. Object-Oriented features such as encapsulation, polymorphism, inheritance, interfaces. Here's how it works: Most computers come with a specified set of very basic instructions that correspond to the basic machine operations that the computer can perform. For example, a "Load" instruction causes the processor to move a string of bits from a location in the processor's memory to a special holding place called a register.
  • 8. 1.The programmer can write a program using a sequence of these assembler instructions. 2. This sequence of assembler instructions, known as the source code or source program, is then specified to the assembler program when that program is started. 3. The assembler program takes each program statement in the source program and generates a corresponding bit stream or pattern. 4. The output of the assembler program is called the object code or object program relative to the input source program. 5. The object program can then be run whenever desired. Earlier programmers actually wrote programs in machine code, but assembler languages or instruction sets were soon developed to speed up programming field. Today, assembler programming is used only where very efficient control over processor operations is needed. It requires knowledge of a particular computer's instruction set. Historically, most programs have been written in "higher-level" languages such as COBOL, FORTRAN, PL/I, and C. These languages are easier to learn and faster to write programs with than assembler language. MICROASSEMBLER A micro assembler also called as meta-assembler. It is a kind of program which helps prepare a micro program to control the low level operation of a computer in much the same way an assembler helps prepare higher level code for a processor. The use of a micro program allows the manufacturer to fix certain mistakes, in hardware design also. Another means of employing micro assembler-generated micro programs is in allowing the same hardware to run different instruction sets. When it is assembled, the micro program is then loaded to a control store to become part of the logic of a CPU's control unit. Some micro assemblers are more generalized and are not targeted at single computer architecture. For example, the use of macro-assembler likes capabilities, Digital Equipment Corporation used their MICRO2 micro assembler for a very wide range of computer architectures. THE ASSEMBLER USED BY THE MICROSOFT (MASM) MASM is a Microsoft's assembler and abbreviation used for it is "Macro Assembler." MASM is a very powerful macro feature, and is capable of writing very low-level syntax, and pseudo-high-
  • 9. level code with its macro feature. MASM 6.15 is currently available as a free-download from Microsoft site. MASM is a one of the Microsoft development tools that are targeted 16-bit, 32-bit and 64-bit platforms. Versions 6.1 and 6.11 included Phar Lap's TNT DOS extender so that MASM could run in MS-DOS. 1. MASM will write in Intel Syntax. 2. MASM is used by Microsoft to implement some low-level portions of its Windows Operating systems. 3. MASM, contrary to popular belief, has been in constant development since 1980, and is upgraded on a needs-basis. 4. MASM has always been made compatible by Microsoft to the current platform, and executable file types. 5. MASM currently supports all Intel instruction sets, including SSE2.
  • 10. MAL (MICRO ASSEMBLY LANGUAGE) It describes about the lexical, syntactic, and semantic elements of the language, and gives a focus on microprogramming with the mic1 micro-assembler. Lexical: Most assembly language such as Micro-Assembly Language is a line-oriented language. Each micro-instruction is generally defined on a single line of the program file. The end-of-line is generally significant. It is a case-sensitive. For example, "AND" is a reserved word Corresponding to a bitwise operation of the mic1 ALU, while "and" is not reserved and may be used as a label. Comments The comments will begin with two slash characters ("//") and continue to the end of the line. Blank lines and lines consisting only of white space and comments are ignored by the micro- assembler. Directive Directives for the micro-assembler begin with a period character (".") and may contain alphabetic characters. There are two micro-assembler directives: ".default" and ".label". Directives are used to provide guide the behavior of the micro-assembler, and do not correspond with words in the control store. Reserved Words
  • 11. The names of registers and control lines are reserved, as are the words "if", "else", "goto", "nop", "AND", "OR", and "NOT". For the mic1 architecture, the following words are reserved and may not be used as statement labels: MAR MDR PC Fetch If Else goto nop AND OR NOT MORE ABOUT THE MICRO ASSEMBLER Micro Assembler is Integrated Development Environment for assembly programming. Micro Assembler has a much easier syntax than any of the major assemblers, a great combination for beginners. Micro Assembler is a Windows based application so you can enjoy user-friendly Windows environment.
  • 12. APPLICATIONS Hard-coded assembly language is typically used in a system's boot ROM(BIOS on IBM- compatible PC systems). This low-level code is used, among other things, to initialize and test the system hardware prior to booting the OS, and is stored in ROM. Once a certain level of hardware initialization has taken place, execution transfers to other code, typically written in higher level languages; but the code running immediately after power is applied is usually written in assembly language. The same is true of most boot loaders. Many compilers render high-level languages into assembly first before fully compiling, allowing the assembly code to be viewed for debugging and optimization purposes. Relatively low-level languages, such as C, often provide special syntax to embed assembly language directly in the source code. Programs using such facilities, such as the Linux kernel, can then construct abstractions utilizing different assembly language on each hardware platform. The system's portable code can then utilize these processor-specific components through a uniform interface. Assembly language is also valuable in reverse engineering, since many programs are distributed only in machine code form, and machine code is usually easy to translate into assembly language and carefully examine in this form, but very difficult to translate into a higher-level language. Tools such as the Interactive Disassembler make extensive use of disassembly for such a purpose. A particular niche that makes use of assembly language is the demo scene. Certain competitions require the contestants to restrict their creations to a very small size (e.g. 256B, 1KB, 4KB or 64 KB), and assembly language is the language of choice to achieve this goal. When resources, particularly CPU-processing constrained systems, like the earlier Amiga models, and the Commodore 64, are a concern, assembler coding is a must: optimized assembler code is written "by hand" and instructions are sequenced manually by the coders in an attempt to minimize the number of CPU cycles used; the CPU constraints are so great that every CPU cycle counts. However, using such techniques has enabled systems like the Commodore 64 to produce real- time3D graphics with advanced effects, a feat which might be considered unlikely or even impossible for a system with a 0.99MHzprocessor BENEFITS OF IT: The micro programmed Data General Eclipse S/200 computer is available with a writable control store. The WCS feature of the Eclipse is having extension of the micro programmed control logic of the computer's central processing unit. It allows a user to implement specialized
  • 13. instructions at a very low level. Its use is however, discouraged since Data General does not provide software support for the WCS feature. REFRENCES http://www.ontko.com/mic1/mal.html#1 http://en.wikipedia.org/wiki/Microassembler http://findebookee.com/adv.php?q=microassembler%20ppt