SlideShare a Scribd company logo
ASSEMBLY LANGUAGE BSCS/BSSE
Computing Machines
• General purpose: servers, desktops, laptops, PDAs,
etc.
• Special purpose: cash registers, ATMs, games, Mobile
Phones, etc.
• Embedded: cars, door locks, printers, digital players,
industrial machinery, medical equipment, etc.
Distinguishing Characteristics
• Speed
• Cost
• Ease of use, software support & interface
• Scalability
Inside the Computer
• Application software
• Written in high-level language
• System software
• Compiler: translates HLL code to machine code
• Operating System: service code
• Handling input/output
• Managing memory and storage
• Scheduling tasks & sharing resources
• Hardware
• Processor, memory, I/O controllers
A Programmer’s View of a Computer
Application Programs
High-Level Languages
Assembly Language
Machine Language
Micro program Control
Hardware
High-Level Languages
Low-Level Language
Machine-independent
Machine-Specific
Levels of Program Code
• High-level language
• Level of abstraction closer to
problem domain
• Provides productivity and
portability
• Assembly language
• Textual representation of
instructions
• Hardware representation
• Binary digits (bits)
• Encoded instructions and data
Detailed Anatomy of a Computer
Memory
Program
Storage
Data Storage
Output
Units
Input Units
Control Unit
Datapath
Arithmetic
Logic Unit
(ALU)
Registers
Common Bus (address, data & control)
Processor (CPU)
Anatomy of a Computer: CPU
Control Unit
Datapath
Arithmetic
Logic Unit
(ALU)
Registers
Processor (CPU)
•Decodes and monitors the execution of instructions.
•Controls flow of information in CPU, memory, I/O
devices:
•System clock (Intel® Core™ I7-720QM Processor
(1.6GHz, turbo up to 2.8GHz, 6MB L3 Cache))
•Maintains a register called program counter(PC)
•ALU: performs all arithmetic computations & logic
evaluations.
•Registers: storage location in CPU, used to hold data or
a memory address during the execution of an
instruction..
The brain of a Computer System
Anatomy of a Computer: Common Bus
A group of conducting wires that allow signals to travel from one
point to another:
• Address bus: the location of data in memory or I/O devices
• Data bus: carry data in & out from CPU
• Control bus: control the operation of the CPU
Common Bus (address, data & control)
A Hierarchy of Languages
Application Programs
High-Level Languages
Assembly Language
Machine Language
Microprogram Control
Hardware
High-Level Languages
Low-Level Language
Machine-independent
Machine-Specific
Assembly and Machine Language
• Machine language
• Native to a processor: executed directly by hardware
• Instructions consist of binary code: 1s and 0s
• Assembly language
• A programming language that uses symbolic names to represent
operations, registers and memory locations.
• Slightly higher-level language
• Readability of instructions is better than machine language
• One-to-one correspondence with machine language instructions
• Assemblers translate assembly to machine code
• Compilers translate high-level programs to machine code
• Either directly, or
• Indirectly via an assembler
Compiler and Assembler
Instructions and Machine Language
• Each command of a program is called an instruction (it
instructs the computer what to do).
• Computers only deal with binary data; hence the
instructions must be in binary format (0s and 1s) .
• The set of all instructions (in binary form) makes up the
computer's machine language. This is also referred to as
the instruction set.
Instruction Fields
• Machine language instructions usually are made up of
several fields. Each field specifies different information for
the computer. The major two fields are:
• Opcode field which stands for operation code and it
specifies the particular operation that is to be performed.
• Each operation has its unique opcode.
• Operands fields which specify where to get the source and
destination operands for the operation specified by the
opcode.
• The source/destination of operands can be a constant,
the memory or one of the general-purpose registers.
Translating Languages
English: D is assigned the sum of A times B plus 10.
High-Level Language: D = A * B + 10
Intel Assembly Language:
mov eax, A
mul B
add eax, 10
mov D, eax
Intel Machine Language:
A1 00404000
F7 25 00404004
83 C0 0A
A3 00404008
A statement in a high-level language is translated
typically into several machine-level instructions
Mapping Between Assembly Language and HLL
• Translating HLL programs to machine language
programs is not a one-to-one mapping
• A HLL instruction (usually called a statement) will be
translated to one or more machine language instructions
Advantages of High-Level Languages
• Program development is faster
• High-level statements: fewer instructions to code
• Program maintenance is easier
• For the same above reasons
• Programs are portable
• Contain few machine-dependent details
• Can be used with little or no modifications on different
machines
• Compiler translates to the target machine language
• However, Assembly language programs are not portable
What is Assembly Language?
Developed by David John Wheeler
(to interact with machine language easier to perform
task).
•1. Computer Programming Language
•2. Low level Programming Language
•It uses Mnemonics/keywords
•Closer to Hardware
•Time waste in compilation can reduced
Why should we learn
Assembly Language?
1. Better/deep
understanding of
software and
hardware interaction??
2. Optimization of
processing time
3. Embedded
Programming
1. High level language program(C,C++, etc.,), Compiler(language translator) is used to convert
high level code into Assembly.
2. Assembly code is then converted into object file by Assembler.
3. Then object file convert into machine code. Object file is linked by linker with library file.
Every system has different system properties(how is it made, attributes, etc.). This library file
present in system and object file link together change into machine code which run the hardware.
•Code in C, filename.c (.c extension language format)
•Compile in Assembly language, extension changes to filename.asm
•Assembler convert it into object file, extension changes into
filename.obj
•Linker link it with library file extension changes into .exe, hardware
run it.
Why Learn Assembly Language?
• Accessibility to system hardware
• Assembly Language is useful for implementing system software
• Also useful for small embedded system applications
• Space and Time efficiency
• Understanding sources of program inefficiency
• Tuning program performance
• Writing compact code
• Writing assembly programs gives the computer designer
the needed deep understanding of the instruction set and
how to design one
• To be able to write compilers for HLLs, we need to be
expert with the machine language. Assembly
programming provides this experience
Assembly vs. High-Level Languages
• HLL programs are machine independent. They are easy to learn and
easy to use.
• Assembly language programs are machine specific. It is the
language that the processor directly understands.
Tools for Assembly Language: Assembler
• Software tools are needed for editing, assembling, linking, and
debugging assembly language programs
• An assembler is a program that converts source-code programs
written in assembly language into object files in machine language
• Popular assemblers have emerged over the years for the Intel family
of processors. These include …
• TASM (Turbo Assembler from Borland)
• NASM (Netwide Assembler for both Windows and Linux), and
• GNU assembler distributed by the free software foundation
• MASM (Macro Assembler from Microsoft)
Tools for Assembly Language: Linker & Libraries
• You need a linker program to produce executable files
• It combines your program's object file created by the
assembler with other object files and link libraries, and
produces a single executable program
Assemble and Link Process
• A project may consist of multiple source files
• Assembler translates each source file separately into an object file
• Linker links all object files together with link libraries
Source
File
Source
File
Source
File
Assembler
Object
File
Assembler
Object
File
Assembler
Object
File
Linker
Executable
File
Link
Libraries
REASON
Reason was to combine machine parts to perform specific task (like switches and other
components which assemble to perform task), name Assembly
FETCH-EXECUTE-CYCLE
CPU executes the instruction with fetch-execute-cycle as;
Fetch
1. Fetch an instruction from memory.
2. Decode the instruction to determine the operation.
3. ·Fetch data from memory if necessary.
Execute
1. Perform the operation on the data.
2. Store the result in memory if needed.
REGISTERS
❑Records or collection of information
❑Storage area inside CPU, CPU take info, process and store it.
❑Fastest area present inside CPU
❑ Helps in Optimization of Processing time (HD file internally run on
register and CPU process it)
❑Understanding of Hardware and Software interaction
Processor operations mostly involve processing data. This data can be stored in
memory and accessed from thereon. However, reading data from and storing data
into memory slows down the processor, as it involves complicated processes of sending
the data request across the control bus and into the memory storage unit and getting
the data through the same channel.
To speed up the processor operations, the processor includes some internal memory
storage locations, called registers.
The registers store data elements for processing without having to access the memory.
A limited number of registers are built into the processor chip.
Registers are a type of computer memory used to quickly accept, store, and transfer
data and instructions that are being used immediately by the CPU. The registers used
by the CPU are often termed as Processor registers.
A processor register may hold an instruction, a storage address, or any data (such as
bit sequence or individual characters).
CPU
HD – Main storage- we run files present in HD.
HD file Run – RAM – Cache – Register
Register built in inside CPU, CPU quickly access information from register, program
work processing time optimize.
Direct access register , time is saved , info save directly into Register because CPU
extract info from here (CPU need space where it keep data to hold or remove).
CPU extract info from register through Assembly language programming.
•Registers are the fastest memory locations built into
microprocessor. Fast means CPU quickly access it close to
CPU.
•Chip by Intel 4004 in 1971, launched registered are used
first time, by Federico Faggin
•Following are the 14 types of registers

More Related Content

Similar to a1.pptx.pdf

Interaction With Computers FIT
Interaction With Computers FITInteraction With Computers FIT
Interaction With Computers FIT
Raj vardhan
 
Week 08_Basics of Compiler Construction.pdf
Week 08_Basics of Compiler Construction.pdfWeek 08_Basics of Compiler Construction.pdf
Week 08_Basics of Compiler Construction.pdf
AnonymousQ3EMYoWNS
 
Computer languages
Computer languagesComputer languages
Computer languages
AqdasNoor
 
microprocesser-140306112352-phpapp01.pdf
microprocesser-140306112352-phpapp01.pdfmicroprocesser-140306112352-phpapp01.pdf
microprocesser-140306112352-phpapp01.pdf
PriyankaRana171346
 
Assembly Language
Assembly LanguageAssembly Language
Assembly Language
Ibrahimcommunication Al Ani
 
Computer languages
Computer languagesComputer languages
Computer languages
BESOR ACADEMY
 
Assembly and Machine Code
Assembly and Machine CodeAssembly and Machine Code
Assembly and Machine Code
Project Student
 
4 computer languages
4 computer languages4 computer languages
4 computer languages
BaliThorat1
 
Types of Programming Languages
Types of Programming LanguagesTypes of Programming Languages
Types of Programming Languages
Juhi Bhoyar
 
Language processors
Language processorsLanguage processors
Language processors
Dr. B T Sampath Kumar
 
Python-unit -I.pptx
Python-unit -I.pptxPython-unit -I.pptx
Python-unit -I.pptx
crAmth
 
Lec 01 basic concepts
Lec 01 basic conceptsLec 01 basic concepts
Lec 01 basic concepts
Abdul Khan
 
Embedded firmware
Embedded firmwareEmbedded firmware
Embedded firmware
Joel P
 
Computer-charecteristics,types of languages,translators
Computer-charecteristics,types of languages,translatorsComputer-charecteristics,types of languages,translators
Computer-charecteristics,types of languages,translators
VarshaSivashanker
 
D turner power_pointpres
D turner power_pointpresD turner power_pointpres
D turner power_pointpres
david114811
 
Embedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals masterEmbedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals master
Hossam Hassan
 
Evolution of programming languages-migara presentation.pptx
Evolution of programming languages-migara presentation.pptxEvolution of programming languages-migara presentation.pptx
Evolution of programming languages-migara presentation.pptx
DinithiGunarathna
 
Python-L1.pptx
Python-L1.pptxPython-L1.pptx
Python-L1.pptx
DukeCalvin
 
Computer languages
Computer languagesComputer languages
Computer languages
Buxoo Abdullah
 
chapt_01.pdf
chapt_01.pdfchapt_01.pdf
chapt_01.pdf
BenitoEmmanuel1
 

Similar to a1.pptx.pdf (20)

Interaction With Computers FIT
Interaction With Computers FITInteraction With Computers FIT
Interaction With Computers FIT
 
Week 08_Basics of Compiler Construction.pdf
Week 08_Basics of Compiler Construction.pdfWeek 08_Basics of Compiler Construction.pdf
Week 08_Basics of Compiler Construction.pdf
 
Computer languages
Computer languagesComputer languages
Computer languages
 
microprocesser-140306112352-phpapp01.pdf
microprocesser-140306112352-phpapp01.pdfmicroprocesser-140306112352-phpapp01.pdf
microprocesser-140306112352-phpapp01.pdf
 
Assembly Language
Assembly LanguageAssembly Language
Assembly Language
 
Computer languages
Computer languagesComputer languages
Computer languages
 
Assembly and Machine Code
Assembly and Machine CodeAssembly and Machine Code
Assembly and Machine Code
 
4 computer languages
4 computer languages4 computer languages
4 computer languages
 
Types of Programming Languages
Types of Programming LanguagesTypes of Programming Languages
Types of Programming Languages
 
Language processors
Language processorsLanguage processors
Language processors
 
Python-unit -I.pptx
Python-unit -I.pptxPython-unit -I.pptx
Python-unit -I.pptx
 
Lec 01 basic concepts
Lec 01 basic conceptsLec 01 basic concepts
Lec 01 basic concepts
 
Embedded firmware
Embedded firmwareEmbedded firmware
Embedded firmware
 
Computer-charecteristics,types of languages,translators
Computer-charecteristics,types of languages,translatorsComputer-charecteristics,types of languages,translators
Computer-charecteristics,types of languages,translators
 
D turner power_pointpres
D turner power_pointpresD turner power_pointpres
D turner power_pointpres
 
Embedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals masterEmbedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals master
 
Evolution of programming languages-migara presentation.pptx
Evolution of programming languages-migara presentation.pptxEvolution of programming languages-migara presentation.pptx
Evolution of programming languages-migara presentation.pptx
 
Python-L1.pptx
Python-L1.pptxPython-L1.pptx
Python-L1.pptx
 
Computer languages
Computer languagesComputer languages
Computer languages
 
chapt_01.pdf
chapt_01.pdfchapt_01.pdf
chapt_01.pdf
 

Recently uploaded

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
Drona Infotech
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 

Recently uploaded (20)

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 

a1.pptx.pdf

  • 2. Computing Machines • General purpose: servers, desktops, laptops, PDAs, etc. • Special purpose: cash registers, ATMs, games, Mobile Phones, etc. • Embedded: cars, door locks, printers, digital players, industrial machinery, medical equipment, etc. Distinguishing Characteristics • Speed • Cost • Ease of use, software support & interface • Scalability
  • 3. Inside the Computer • Application software • Written in high-level language • System software • Compiler: translates HLL code to machine code • Operating System: service code • Handling input/output • Managing memory and storage • Scheduling tasks & sharing resources • Hardware • Processor, memory, I/O controllers
  • 4. A Programmer’s View of a Computer Application Programs High-Level Languages Assembly Language Machine Language Micro program Control Hardware High-Level Languages Low-Level Language Machine-independent Machine-Specific
  • 5. Levels of Program Code • High-level language • Level of abstraction closer to problem domain • Provides productivity and portability • Assembly language • Textual representation of instructions • Hardware representation • Binary digits (bits) • Encoded instructions and data
  • 6. Detailed Anatomy of a Computer Memory Program Storage Data Storage Output Units Input Units Control Unit Datapath Arithmetic Logic Unit (ALU) Registers Common Bus (address, data & control) Processor (CPU)
  • 7. Anatomy of a Computer: CPU Control Unit Datapath Arithmetic Logic Unit (ALU) Registers Processor (CPU) •Decodes and monitors the execution of instructions. •Controls flow of information in CPU, memory, I/O devices: •System clock (Intel® Core™ I7-720QM Processor (1.6GHz, turbo up to 2.8GHz, 6MB L3 Cache)) •Maintains a register called program counter(PC) •ALU: performs all arithmetic computations & logic evaluations. •Registers: storage location in CPU, used to hold data or a memory address during the execution of an instruction.. The brain of a Computer System
  • 8. Anatomy of a Computer: Common Bus A group of conducting wires that allow signals to travel from one point to another: • Address bus: the location of data in memory or I/O devices • Data bus: carry data in & out from CPU • Control bus: control the operation of the CPU Common Bus (address, data & control)
  • 9. A Hierarchy of Languages Application Programs High-Level Languages Assembly Language Machine Language Microprogram Control Hardware High-Level Languages Low-Level Language Machine-independent Machine-Specific
  • 10. Assembly and Machine Language • Machine language • Native to a processor: executed directly by hardware • Instructions consist of binary code: 1s and 0s • Assembly language • A programming language that uses symbolic names to represent operations, registers and memory locations. • Slightly higher-level language • Readability of instructions is better than machine language • One-to-one correspondence with machine language instructions • Assemblers translate assembly to machine code • Compilers translate high-level programs to machine code • Either directly, or • Indirectly via an assembler
  • 12. Instructions and Machine Language • Each command of a program is called an instruction (it instructs the computer what to do). • Computers only deal with binary data; hence the instructions must be in binary format (0s and 1s) . • The set of all instructions (in binary form) makes up the computer's machine language. This is also referred to as the instruction set.
  • 13. Instruction Fields • Machine language instructions usually are made up of several fields. Each field specifies different information for the computer. The major two fields are: • Opcode field which stands for operation code and it specifies the particular operation that is to be performed. • Each operation has its unique opcode. • Operands fields which specify where to get the source and destination operands for the operation specified by the opcode. • The source/destination of operands can be a constant, the memory or one of the general-purpose registers.
  • 14. Translating Languages English: D is assigned the sum of A times B plus 10. High-Level Language: D = A * B + 10 Intel Assembly Language: mov eax, A mul B add eax, 10 mov D, eax Intel Machine Language: A1 00404000 F7 25 00404004 83 C0 0A A3 00404008 A statement in a high-level language is translated typically into several machine-level instructions
  • 15. Mapping Between Assembly Language and HLL • Translating HLL programs to machine language programs is not a one-to-one mapping • A HLL instruction (usually called a statement) will be translated to one or more machine language instructions
  • 16. Advantages of High-Level Languages • Program development is faster • High-level statements: fewer instructions to code • Program maintenance is easier • For the same above reasons • Programs are portable • Contain few machine-dependent details • Can be used with little or no modifications on different machines • Compiler translates to the target machine language • However, Assembly language programs are not portable
  • 17. What is Assembly Language? Developed by David John Wheeler (to interact with machine language easier to perform task). •1. Computer Programming Language •2. Low level Programming Language •It uses Mnemonics/keywords •Closer to Hardware •Time waste in compilation can reduced
  • 18. Why should we learn Assembly Language? 1. Better/deep understanding of software and hardware interaction?? 2. Optimization of processing time 3. Embedded Programming
  • 19.
  • 20. 1. High level language program(C,C++, etc.,), Compiler(language translator) is used to convert high level code into Assembly. 2. Assembly code is then converted into object file by Assembler. 3. Then object file convert into machine code. Object file is linked by linker with library file. Every system has different system properties(how is it made, attributes, etc.). This library file present in system and object file link together change into machine code which run the hardware.
  • 21. •Code in C, filename.c (.c extension language format) •Compile in Assembly language, extension changes to filename.asm •Assembler convert it into object file, extension changes into filename.obj •Linker link it with library file extension changes into .exe, hardware run it.
  • 22. Why Learn Assembly Language? • Accessibility to system hardware • Assembly Language is useful for implementing system software • Also useful for small embedded system applications • Space and Time efficiency • Understanding sources of program inefficiency • Tuning program performance • Writing compact code • Writing assembly programs gives the computer designer the needed deep understanding of the instruction set and how to design one • To be able to write compilers for HLLs, we need to be expert with the machine language. Assembly programming provides this experience
  • 23. Assembly vs. High-Level Languages • HLL programs are machine independent. They are easy to learn and easy to use. • Assembly language programs are machine specific. It is the language that the processor directly understands.
  • 24. Tools for Assembly Language: Assembler • Software tools are needed for editing, assembling, linking, and debugging assembly language programs • An assembler is a program that converts source-code programs written in assembly language into object files in machine language • Popular assemblers have emerged over the years for the Intel family of processors. These include … • TASM (Turbo Assembler from Borland) • NASM (Netwide Assembler for both Windows and Linux), and • GNU assembler distributed by the free software foundation • MASM (Macro Assembler from Microsoft)
  • 25. Tools for Assembly Language: Linker & Libraries • You need a linker program to produce executable files • It combines your program's object file created by the assembler with other object files and link libraries, and produces a single executable program
  • 26. Assemble and Link Process • A project may consist of multiple source files • Assembler translates each source file separately into an object file • Linker links all object files together with link libraries Source File Source File Source File Assembler Object File Assembler Object File Assembler Object File Linker Executable File Link Libraries
  • 27. REASON Reason was to combine machine parts to perform specific task (like switches and other components which assemble to perform task), name Assembly
  • 28.
  • 29.
  • 30. FETCH-EXECUTE-CYCLE CPU executes the instruction with fetch-execute-cycle as; Fetch 1. Fetch an instruction from memory. 2. Decode the instruction to determine the operation. 3. ·Fetch data from memory if necessary. Execute 1. Perform the operation on the data. 2. Store the result in memory if needed.
  • 31. REGISTERS ❑Records or collection of information ❑Storage area inside CPU, CPU take info, process and store it. ❑Fastest area present inside CPU ❑ Helps in Optimization of Processing time (HD file internally run on register and CPU process it) ❑Understanding of Hardware and Software interaction
  • 32. Processor operations mostly involve processing data. This data can be stored in memory and accessed from thereon. However, reading data from and storing data into memory slows down the processor, as it involves complicated processes of sending the data request across the control bus and into the memory storage unit and getting the data through the same channel. To speed up the processor operations, the processor includes some internal memory storage locations, called registers. The registers store data elements for processing without having to access the memory. A limited number of registers are built into the processor chip. Registers are a type of computer memory used to quickly accept, store, and transfer data and instructions that are being used immediately by the CPU. The registers used by the CPU are often termed as Processor registers. A processor register may hold an instruction, a storage address, or any data (such as bit sequence or individual characters).
  • 33. CPU
  • 34. HD – Main storage- we run files present in HD. HD file Run – RAM – Cache – Register Register built in inside CPU, CPU quickly access information from register, program work processing time optimize. Direct access register , time is saved , info save directly into Register because CPU extract info from here (CPU need space where it keep data to hold or remove). CPU extract info from register through Assembly language programming.
  • 35. •Registers are the fastest memory locations built into microprocessor. Fast means CPU quickly access it close to CPU. •Chip by Intel 4004 in 1971, launched registered are used first time, by Federico Faggin •Following are the 14 types of registers