SlideShare a Scribd company logo
1 of 83
Assembly Language
Introductionto
Assembly
Language
Input–Output System
 Because computer games are so memory and I/O intensive,
they push computer performance to the max.
 Programmers who excel at game programming often know
a lot about video and sound hardware, and optimize their
code for hardware features.
LevelsofI/O
Access
 Application programs routinely read input from
keyboard and disk files and write output to the
 screen and to files. I/O need not be accomplished by
directly accessing hardware—instead, you
 can call functions provided by the operating system.
I/O is available at different access level
3primarylevels
 High-level language functions:
 Operating system:
 BIOS:
High-level
language
functions
 high-level programming language such as C++ or Java
contains functions to perform input–output.
 These functions are portable because they work on a
variety of different computer systems and are not
dependent on any one operating system.
Operating
system
 Programmers can call operating system functions from
a library known as the API (application programming
interface).
 The operating system provides high-level operations
such as writing strings to files, reading strings from
the keyboard, and allocating blocks of memory.
BIOS
 The basic input–output system is a collection of low-
level subroutines that communicate directly with
hardware devices.
 The BIOS is installed by the computer’s manufacturer
and is tailored to fit the computer’s hardware.
Operating systems typically communicate with the
BIOS.
DeviceDrivers
 Programs that permit the operating system to communicate directly
with hardware devices and the system BIOS.
 For example, a device driver might receive a request from the OS to
read some data; the device driver satisfies the request by executing
code in the device firmware that reads data in a way that is unique
to the device.
Device drivers are usually installed in one of two ways:
(1) before a specific hardware device is attached to a
computer,
(2) after a device has been attached and identified. In the
latter case, the OS recognizes the device name and signature; it then
locates and installs the device driver software onto the computer.
Accesslevelsfor
input–output
operations
Programming
atMultiple
Levels
Assembly language
programs have power and
flexibility in the area of
input-output programming.
 They can choose from the
following access levels
Assembly
languageaccess
levels
AccessLevels
 Level 3: Call library functions to perform generic text
I/O and file-based I/O. We supply such a library with
this book, for instance.
 Level 2: Call operating system functions to perform
generic text I/O and file-based I/O. If the OS uses a
graphical user interface, it has functions to display
graphics in a device-independent way.
 Level 1: Call BIOS functions to control device-specific
features such as color, graphics, sound, keyboard input,
and low-level disk I/O.
 Level 0: Send and receive data from hardware ports,
having absolute control over specific devices. This
approach cannot be used with a wide variety of
hardware devices, so we say that it is not portable.
Scenario1
 Level 1 (BIOS) works on all systems
having a standard BIOS, but will not
produce the same result on all systems.
 For example, two computers might have
video displays with different resolution
capabilities. A programmer at Level 1
would have to write code to detect the
user’s hardware setup and adjust the
output format to match. Level 1 runs
faster than Level 2 because it is only one
level above the hardware.
Scenario2
 Level 0 (hardware) works with generic
devices such as serial ports and with
specific I/O devices produced by known
manufacturers.
 Programs using this level must extend
their coding logic to handle variations in
I/O devices. Real-mode game programs
are prime examples because they usually
take control of the computer. Programs at
this level execute as quickly as the
hardware will permit.
Questions
 Of the four levels of input/output in a computer system,
which is the most universal and portable?
 2. What characteristics distinguish BIOS-level
input/output?
 3. Why are device drivers necessary, given that the
BIOS already has code that communicates with the
computer’s hardware?
Assembly
Language
(BasicLanguageElements)
Assembly
Language
(BasicLanguageElements)
 Line 1 starts the main procedure, the entry point for
the program
 Line 2 places the integer 5 in the eax register
 Line 3 adds 6 to the value in EAX, giving it a new
value of 11
 Line 5 calls a Windows service (also known as a
function) named ExitProcess that halts the program
and returns control to the operating system. This is the
ending variable.
Addinga
Variable
 The sum variable is declared on Line 2, where we give
it a size of 32 bits, using the DWORD keyword.
 Marked .code and .data directives, are called
segments.
IntegerLiterals
 An integer literal (also known as an
integer constant) is made up of an
optional leading sign, one or more digits,
and an optional radix character that
indicates the number’s base
Elements within square brackets [..] are optional and elements within braces {..} require a choice of one
of the enclosed elements, separated by the | character. Elements in italics identify items that have
known definitions or descriptions.
examples
 So, for example, 26 is a valid integer literal. It
doesn’t have a radix, so we assume it’s in decimal
format.
 If we wanted it to be 26 hexadecimal, we would
have to write it as 26h. Similarly, the number
1101 would be considered a decimal value until
we added a “b” at the end to make it 1101b
(binary)
ConstantInteger
Expressions
Mathematical expression involving
integer literals and arithmetic
operators.
Each expression must evaluate to
an integer, which can be stored in
32 bits (0 through FFFFFFFFh).
Arithmetic
Operators
Operator
precedence
• Refers to the implied order of
operations when an expression
contains two or more operators.
RealNumber
Literals
 Real number literals (also known as
floating-point literals) are represented as
either decimal reals or encoded
(hexadecimal) reals.
 A decimal real contains an optional sign
followed by an integer, a decimal point,
an optional integer that expresses a
fraction, and an optional exponent:
examples
Character
Literals
 A character literal is a single character
enclosed in single or double quotes.
 The assembler stores the value in
memory as the character’s binary ASCII
code. Examples are:
Character literals are stored internally as integers, using the ASCII encoding sequence.
So, when you write the character constant “A,” it’s stored in memory as the number 65 (or 41 hex).
StringLiterals
A string literal is a sequence of
characters (including spaces)
enclosed in single or double quotes
ReservedWords
 Reserved words have special meaning
and can only be used in their correct
context. Reserved works, by default, are
not case-sensitive.
 For example, MOV is the same as mov
and Mov.
 There are different types of reserved
words:
Identifiers
 An identifier is a programmer-chosen
name. It might identify a variable, a
constant, a procedure, or a code label.
There are a few rules on how they can be
formed:
 They may contain between 1 and 247
characters.
 They are not case sensitive.
 The first character must be a letter (A..Z,
a..z), underscore (_), @ , ?, or $. Subsequent
characters may also be digits.
 An identifier cannot be the same as an
assembler reserved word.
Directives
 A directive is a command embedded in the source code
that is recognized and acted upon by the assembler.
Directives do not execute at runtime, but they let you
define variables, macros, and procedures.
 They can assign names to memory segments and
perform many other housekeeping tasks related to the
assembler.
 Directives are not, by default, case sensitive. For
example, .data,.DATA, and .Data are equivalent.
Directives
 The following example helps to show the difference
between directives and instructions.
 The DWORD directive tells the assembler to reserve
space in the program for a doubleword variable.
 The MOV instruction, on the other hand, executes at
runtime, copying the contents of myVar to the EAX
register:
Defining
Segments
 One important function of assembler directives is to
define program sections, or segments.
 Segments are sections of a program that have different
purposes.
 For example,one segment can be used to define
variables, and is identified by the .DATA directive:
.data
 The .CODE directive identifies the area of a program
containing executable instructions:
.code
 The .STACK directive identifies the area of a program
holding the runtime stack, setting its size
.stack 100h
Instructions
 An instruction is a statement that
becomes executable when a program is
assembled. Instructions are translated by
the assembler into machine language
bytes, which are loaded and executed by
the CPU at runtime.
 An instruction contains four basic parts:
 Label (optional)
 Instruction mnemonic (required)
 Operand(s) (usually required)
 Comment (optional)
Label
 A label is an identifier that acts as a place marker
for instructions and data. A label placed just
before an instruction implies the instruction’s
address.
 Similarly, a label placed just before a variable
implies the variable’s address.
 There are two types of labels: Data labels and
Code labels.
 A data label identifies the location of a variable,
providing a convenient way to reference the
variable in code.
Label
 A label in the code area of a program (where
instructions are located) must end with a colon (:)
character. Code labels are used as targets of jumping
and looping instructions.
 For example, the following JMP (jump) instruction
transfers control to the location marked by the label
named target, creating a loop:
A code label can share the same line with an instruction,
or it can be on a line by itself:
Instruction
Mnemonic
 An instruction mnemonic is a short word that
identifies an instruction.
 In English, a mnemonic is a device that assists
memory.
 Similarly, assembly language instruction mnemonics
such as mov, add, and sub provide hints about the type
of operation they perform
Instruction
Mnemonic
Operands
 An operand is a value that is used for
input or output for an instruction.
Assembly language instructions can have
between zero and three operands, each of
which can be a register, memory operand,
integer expression, or input–output port.
Operands
 There are different ways to create
memory operands—using variable
names, registers surrounded by brackets,
for example.
 A variable name implies the address of
the variable and instructs the computer
to reference the contents of memory at
the given address
Operands
Comments
 Comments are an important way for the writer of
a program to communicate information about the
program’s design to a person reading the source
code. The following information is typically
included at the top of a program listing:
 Description of the program’s purpose
 Names of persons who created and/or revised the
program
 Program creation and revision dates
 Technical notes about the program’s
implementation
Comments
Comments can be specified in two ways:
 Single-line comments, beginning with a
semicolon character (;). All characters
following the semicolon on the same line
are ignored by the assembler.
 Block comments, beginning with the
COMMENT directive and a user-specified
symbol. All subsequent lines of text are
ignored by the assembler until the same
user-specified symbol appears
TheNOP
(NoOperation)
Instruction
 The safest (and the most useless)
instruction is NOP (no operation). It
takes up 1 byte of program storage and
doesn’t do any work.
 It is sometimes used by compilers and
assemblers to align code to efficient
address boundaries.
?
1. Using the value –35, write it as an integer literal in decimal, hexadecimal, octal, and
binary formats that are consistent with MASM syntax.
2. (Yes/No): Is A5h a valid hexadecimal literal?
3. (Yes/No): Does the multiplication operator (*) have a higher precedence than the division
operator (/) in integer expressions?
4. Create a single integer expression that uses all the operators from Section 3.1.2.
Calculate
the value of the expression.
5. Write the real number –6.2 104 as a real number literal using MASM syntax.
6. (Yes/No): Must string literals be enclosed in single quotes?
7. Reserved words can be instruction mnemonics, attributes, operators, predefined symbols,
and __________.
8. What is the maximum length of an identifier?
Basic Microcomputer Design
Blockdiagram
of
microcomputer
Microcomputer
 The central processor unit (CPU), where
calculations and logical operations take
place, contains a limited number of
storage locations named registers, a
high-frequency clock, a control unit, and
an arithmetic logic unit.
microcomputer
 The clock synchronizes the internal
operations of the CPU with other system
components.
 • The control unit (CU) coordinates the
sequencing of steps involved in executing
machine instructions.
 • The arithmetic logic unit (ALU)
performs arithmetic operations such as
addition and subtraction and logical
operations such as AND, OR, and NOT.
microcomputer
 The CPU is attached to the rest of the computer via pins
attached to the CPU socket in the computer’s motherboard.
 Most pins connect to the data bus, the control bus, and the
address bus.
 The memory storage unit is where instructions and data are
held while a computer program is running.
 The storage unit receives requests for data from the CPU,
transfers data from random access memory (RAM) to the
CPU, and transfers data from the CPU into memory.
 All processing of data takes place within the CPU, so
programs residing in memory must be copied into the CPU
before they can execute.
 Individual program instructions can be copied into the CPU
one at a time, or groups of instructions can be copied
together
Clock
 Each operation involving the CPU and
the system bus is synchronized by an
internal clock pulsing at a constant rate.
The basic unit of time for machine
instructions is a machine cycle (or clock
cycle).
 The length of a clock cycle is the time
required for one complete clock pulse. In
the following figure, a clock cycle is
depicted as the time between one falling
edge and the next:
clock
 The duration of a clock cycle is calculated as the reciprocal
of the clock’s speed, which in turn is measured in
oscillations per second.
 A clock that oscillates 1 billion times per second (1 GHz),
for example, produces a clock cycle with a duration of one
billionth of a second (1 nanosecond).
 A machine instruction requires at least
one clock cycle to execute, and a few
require in excess of 50 clocks
 Instructions requiring memory access
often have empty clock cycles called wait
states because of the differences in the
speeds of the CPU, the system bus, and
memory circuits.
Instruction
ExecutionCycle
A single machine instruction does
not just magically execute all at
once. The CPU has to go through a
predefined sequence of steps to
execute a machine instruction,
called the instruction execution
cycle.
stepsto execute
it:
1. First, the CPU has to fetch the instruction from an area of memory
called the instruction queue. Right after doing this, it increments the
instruction pointer.
2. Next, the CPU decodes the instruction by looking at its binary bit
pattern. This bit pattern might reveal that the instruction has operands
(input values).
3. If operands are involved, the CPU fetches the operands from
registers and memory. Sometimes,this involves address calculations.
4. Next, the CPU executes the instruction, using any operand values it
fetched during the earlier step. It also updates a few status flags, such
as Zero, Carry, and Overflow.
5. Finally, if an output operand was part of the instruction, the CPU
stores the result of its executionin the operand.
Simplified steps
Fetch,
Decode, and
 Execute
SimplifiedBlock
diagram
Readingfrom
Memory
As a rule, computers read memory much more slowly
than they access internal registers. This is because
reading a single value from memory involves four
separate steps:
1. Place the address of the value you want to read on the
address bus.
2. Assert (change the value of) the processor’s RD (read)
pin.
3.Wait one clock cycle for the memory chips to respond.
4. Copy the data from the data bus into the destination
operand.
 Each of these steps generally requires a single
clock cycle, a measurement of time based on a
clock that ticks inside the processor at a regular
rate. Computer CPUs are often described in
terms of their clock speeds.
 A speed of 1.2 GHz, for example, means the clock
ticks, or oscillates,1.2 billion times per second.
 So, 4 clock cycles go by fairly fast, considering
each one lasts for only 1/1,200,000,000th of a
second.
 Still, that’s much slower than the CPU registers,
which are usually accessed in only one clock
cycle.
Loadingand
Executinga
Program
 Before a program can run, it must be
loaded into memory by a utility known as
a program loader.
 After loading, the operating system must
point the CPU to the program’s entry
point, which is the address at which the
program is to begin execution
STEPS in Loading and Executing Programs
 The operating system (OS) searches for the program’s filename in the current disk directory. If it cannot find
the name there, it searches a predetermined list of directories (called paths) for the filename. If the OS fails
to find the program filename, it issues an error message.
 If the program file is found, the OS retrieves basic information about the program’s file from the disk
directory, including the file size and its physical location on the disk drive.
 The OS determines the next available location in memory and loads the program file into memory. It
allocates a block of memory to the program and enters information about the program’s size and location into
a table (sometimes called a descriptor table). Additionally, the OS may adjust the values of pointers within
the program so they contain addresses of program data.
 The OS begins execution of the program’s first machine instruction (its entry point). As soon as the program
begins running, it is called a process. The OS assigns the process an identification number (process ID),
which is used to keep track of it while running.
 The process runs by itself. It is the OS’s job to track the execution of the process and to respond to requests
for system resources. Examples of resources are memory, disk files, and input-output devices.
 When the process ends, it is removed from memory
***
Address Space
AddressSpace
Extended physical addressing -
allows a total of 64 GBytes of
physical memory to be addressed
Real-address mode programs, on
the otherhand, can only address a
range of 1 MByte.
Registers
Registers
Registers are high-speed storage
locations directly inside the CPU,
designed to be accessed at much
higher speed than conventional
memory
 When a processing loop is
optimized for speed, for example,
loop counters are held in registers
rather than variables
There are eight general-purpose registers, six segment registers, a processor status flags register
(EFLAGS), and an instruction pointer (EIP).
General
Purpose
Registers
 Portions of some registers can be addressed as 8-bit
values.
 For example, the AX register has an 8-bit upper half
named AH and an 8-bit lower half named AL. The same
overlapping relationship exists for the EAX, EBX, ECX,
and EDX registers
SpecializedUses
 EAX is automatically used by multiplication and division
instructions. It is often called the extended accumulator register.
 The CPU automatically uses ECX as a loop counter.
 ESP addresses data on the stack (a system memory structure). It is
rarely used for ordinary arithmetic or data transfer. It is often called
the extended stack pointer register.
 ESI and EDI are used by high-speed memory transfer instructions.
They are sometimes called the extended source index and extended
destination index registers.
 EBP is used by high-level languages to reference function parameters
and local variables on the stack. It should not be used for ordinary
arithmetic or data transfer except at an advanced level of
programming. It is often called the extended frame pointer register.
Segment
Registers
 In real-address mode, 16-bit segment
registers indicate base addresses of
preassigned memory areas named
segments.
 In protected mode, segment registers
hold pointers to segment descriptor
tables.
 Some segments hold program
instructions (code), others hold variables
(data), and another segment named the
stack segment holds local function
variables and function parameters.
Instruction
Pointer
 The EIP, or instruction pointer, register
contains the address of the next
instruction to be executed.
 Certain machine instructions manipulate
EIP, causing the program to branch to a
new location.
EFLAGSRegister
 The EFLAGS (or just Flags) register
consists of individual binary bits that
control the operation of the CPU or
reflect the outcome of some CPU
operation.
 Some instructions test and manipulate
individual processor flags.
A flag is set when it equals 1; it is clear (or reset) when it
equals 0.
ControlFlags
 Control flags control the CPU’s operation.
 For example, they can cause the CPU to
break after every instruction executes,
interrupt when arithmetic overflow is
detected, enter virtual-8086 mode, and
enter protected mode.
 Programs can set individual bits in the
EFLAGS register to control the CPU’s
operation.
 Examples are the Direction and
Interrupt flags.
StatusFlags
The status flags reflect the
outcomes of arithmetic and logical
operations performed by the CPU.
 They are the Overflow, Sign, Zero,
Auxiliary Carry, Parity, and Carry
flags.
StatusFlags
 The Carry flag (CF) is set when the result of an unsigned
arithmetic operation is too large to fit into the destination.
 The Overflow flag (OF) is set when the result of a signed
arithmetic operation is too large or too small to fit into the
destination.
 The Sign flag (SF) is set when the result of an arithmetic or
logical operation generates a negative result.
 The Zero flag (ZF) is set when the result of an arithmetic or
logical operation generates a result of zero.
 The Auxiliary Carry flag (AC) is set when an arithmetic
operation causes a carry from bit 3 to bit 4 in an 8-bit
operand.
 The Parity flag (PF) is set if the least-significant byte in the
result contains an even number of 1 bits.
Questions
1. The central processor unit (CPU) contains
registers and what other basic elements?
2. Why does memory access take more machine
cycles than register access?
3. What are the three basic steps in the
instruction execution cycle?
4. Define clock by its function on computer
system.
5. What is the difference between Extended
physical addressing and Real-address mode
programs?
6. List two registers and its uses in addressing.

More Related Content

Similar to intro to assembly language.pptx

C programming language tutorial for beginers.pdf
C programming language tutorial for beginers.pdfC programming language tutorial for beginers.pdf
C programming language tutorial for beginers.pdfComedyTechnology
 
Insight into progam execution ppt
Insight into progam execution pptInsight into progam execution ppt
Insight into progam execution pptKeerty Smile
 
Lecture 1 introduction to_computersb(2)
Lecture 1 introduction to_computersb(2)Lecture 1 introduction to_computersb(2)
Lecture 1 introduction to_computersb(2)xterribad
 
Unit 2 introduction to c programming
Unit 2   introduction to c programmingUnit 2   introduction to c programming
Unit 2 introduction to c programmingMithun DSouza
 
Unit 3 assembler and processor
Unit 3   assembler and processorUnit 3   assembler and processor
Unit 3 assembler and processorAbha Damani
 
Computer architecture is made up of two main components the Instruct.docx
Computer architecture is made up of two main components the Instruct.docxComputer architecture is made up of two main components the Instruct.docx
Computer architecture is made up of two main components the Instruct.docxbrownliecarmella
 
Compiler_Lecture1.pdf
Compiler_Lecture1.pdfCompiler_Lecture1.pdf
Compiler_Lecture1.pdfAkarTaher
 
Embedded firmware
Embedded firmwareEmbedded firmware
Embedded firmwareJoel P
 
Unit 1 c - all topics
Unit 1   c - all topicsUnit 1   c - all topics
Unit 1 c - all topicsveningstonk
 
Chapter1pdf__2021_11_23_10_53_20.pdf
Chapter1pdf__2021_11_23_10_53_20.pdfChapter1pdf__2021_11_23_10_53_20.pdf
Chapter1pdf__2021_11_23_10_53_20.pdfDrIsikoIsaac
 
Introduction To Computer and Java
Introduction To Computer and JavaIntroduction To Computer and Java
Introduction To Computer and JavaPRN USM
 
Assembly level language
Assembly level languageAssembly level language
Assembly level languagePDFSHARE
 
Dineshmaterial1 091225091539-phpapp02
Dineshmaterial1 091225091539-phpapp02Dineshmaterial1 091225091539-phpapp02
Dineshmaterial1 091225091539-phpapp02Tirumala Rao
 
Chapter 1 - Basic concepts of programming.pdf
Chapter 1 - Basic concepts of programming.pdfChapter 1 - Basic concepts of programming.pdf
Chapter 1 - Basic concepts of programming.pdfKirubelWondwoson1
 

Similar to intro to assembly language.pptx (20)

C programming language tutorial for beginers.pdf
C programming language tutorial for beginers.pdfC programming language tutorial for beginers.pdf
C programming language tutorial for beginers.pdf
 
Insight into progam execution ppt
Insight into progam execution pptInsight into progam execution ppt
Insight into progam execution ppt
 
Lecture 1 introduction to_computersb(2)
Lecture 1 introduction to_computersb(2)Lecture 1 introduction to_computersb(2)
Lecture 1 introduction to_computersb(2)
 
C Lang notes.ppt
C Lang notes.pptC Lang notes.ppt
C Lang notes.ppt
 
Unit 2 introduction to c programming
Unit 2   introduction to c programmingUnit 2   introduction to c programming
Unit 2 introduction to c programming
 
Chapter1.pdf
Chapter1.pdfChapter1.pdf
Chapter1.pdf
 
Unit 3 assembler and processor
Unit 3   assembler and processorUnit 3   assembler and processor
Unit 3 assembler and processor
 
Computer architecture is made up of two main components the Instruct.docx
Computer architecture is made up of two main components the Instruct.docxComputer architecture is made up of two main components the Instruct.docx
Computer architecture is made up of two main components the Instruct.docx
 
Compiler_Lecture1.pdf
Compiler_Lecture1.pdfCompiler_Lecture1.pdf
Compiler_Lecture1.pdf
 
Chapter 1.pptx
Chapter 1.pptxChapter 1.pptx
Chapter 1.pptx
 
Embedded firmware
Embedded firmwareEmbedded firmware
Embedded firmware
 
FINAL.ppt
FINAL.pptFINAL.ppt
FINAL.ppt
 
Unit-2.pptx
Unit-2.pptxUnit-2.pptx
Unit-2.pptx
 
Unit 1 c - all topics
Unit 1   c - all topicsUnit 1   c - all topics
Unit 1 c - all topics
 
Chapter1pdf__2021_11_23_10_53_20.pdf
Chapter1pdf__2021_11_23_10_53_20.pdfChapter1pdf__2021_11_23_10_53_20.pdf
Chapter1pdf__2021_11_23_10_53_20.pdf
 
Introduction To Computer and Java
Introduction To Computer and JavaIntroduction To Computer and Java
Introduction To Computer and Java
 
Assembly level language
Assembly level languageAssembly level language
Assembly level language
 
Dineshmaterial1 091225091539-phpapp02
Dineshmaterial1 091225091539-phpapp02Dineshmaterial1 091225091539-phpapp02
Dineshmaterial1 091225091539-phpapp02
 
Chapter 1 - Basic concepts of programming.pdf
Chapter 1 - Basic concepts of programming.pdfChapter 1 - Basic concepts of programming.pdf
Chapter 1 - Basic concepts of programming.pdf
 
CISY 105 Chapter 1
CISY 105 Chapter 1CISY 105 Chapter 1
CISY 105 Chapter 1
 

More from EdFeranil

Example quiz on sets laws discrete math
Example quiz on sets laws  discrete mathExample quiz on sets laws  discrete math
Example quiz on sets laws discrete mathEdFeranil
 
Mathematical Logic.pptx
Mathematical Logic.pptxMathematical Logic.pptx
Mathematical Logic.pptxEdFeranil
 
Arrays in Reading.pptx
Arrays in Reading.pptxArrays in Reading.pptx
Arrays in Reading.pptxEdFeranil
 
Law and Ethics in Information Security.pptx
Law and Ethics in Information Security.pptxLaw and Ethics in Information Security.pptx
Law and Ethics in Information Security.pptxEdFeranil
 
OOP -interface and objects.pptx
OOP -interface and objects.pptxOOP -interface and objects.pptx
OOP -interface and objects.pptxEdFeranil
 
The Evolution of Computing.pptx
The Evolution of Computing.pptxThe Evolution of Computing.pptx
The Evolution of Computing.pptxEdFeranil
 
Java Basics.pdf
Java Basics.pdfJava Basics.pdf
Java Basics.pdfEdFeranil
 
ERD Activity.pptx
ERD Activity.pptxERD Activity.pptx
ERD Activity.pptxEdFeranil
 
ASSEMBLY LANGUAGE.pptx
ASSEMBLY LANGUAGE.pptxASSEMBLY LANGUAGE.pptx
ASSEMBLY LANGUAGE.pptxEdFeranil
 
Boolean Expression.pptx
Boolean Expression.pptxBoolean Expression.pptx
Boolean Expression.pptxEdFeranil
 
lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.pptEdFeranil
 

More from EdFeranil (11)

Example quiz on sets laws discrete math
Example quiz on sets laws  discrete mathExample quiz on sets laws  discrete math
Example quiz on sets laws discrete math
 
Mathematical Logic.pptx
Mathematical Logic.pptxMathematical Logic.pptx
Mathematical Logic.pptx
 
Arrays in Reading.pptx
Arrays in Reading.pptxArrays in Reading.pptx
Arrays in Reading.pptx
 
Law and Ethics in Information Security.pptx
Law and Ethics in Information Security.pptxLaw and Ethics in Information Security.pptx
Law and Ethics in Information Security.pptx
 
OOP -interface and objects.pptx
OOP -interface and objects.pptxOOP -interface and objects.pptx
OOP -interface and objects.pptx
 
The Evolution of Computing.pptx
The Evolution of Computing.pptxThe Evolution of Computing.pptx
The Evolution of Computing.pptx
 
Java Basics.pdf
Java Basics.pdfJava Basics.pdf
Java Basics.pdf
 
ERD Activity.pptx
ERD Activity.pptxERD Activity.pptx
ERD Activity.pptx
 
ASSEMBLY LANGUAGE.pptx
ASSEMBLY LANGUAGE.pptxASSEMBLY LANGUAGE.pptx
ASSEMBLY LANGUAGE.pptx
 
Boolean Expression.pptx
Boolean Expression.pptxBoolean Expression.pptx
Boolean Expression.pptx
 
lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.ppt
 

Recently uploaded

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 

Recently uploaded (20)

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 

intro to assembly language.pptx

  • 2. Introductionto Assembly Language Input–Output System  Because computer games are so memory and I/O intensive, they push computer performance to the max.  Programmers who excel at game programming often know a lot about video and sound hardware, and optimize their code for hardware features.
  • 3. LevelsofI/O Access  Application programs routinely read input from keyboard and disk files and write output to the  screen and to files. I/O need not be accomplished by directly accessing hardware—instead, you  can call functions provided by the operating system. I/O is available at different access level
  • 4. 3primarylevels  High-level language functions:  Operating system:  BIOS:
  • 5. High-level language functions  high-level programming language such as C++ or Java contains functions to perform input–output.  These functions are portable because they work on a variety of different computer systems and are not dependent on any one operating system.
  • 6. Operating system  Programmers can call operating system functions from a library known as the API (application programming interface).  The operating system provides high-level operations such as writing strings to files, reading strings from the keyboard, and allocating blocks of memory.
  • 7. BIOS  The basic input–output system is a collection of low- level subroutines that communicate directly with hardware devices.  The BIOS is installed by the computer’s manufacturer and is tailored to fit the computer’s hardware. Operating systems typically communicate with the BIOS.
  • 8. DeviceDrivers  Programs that permit the operating system to communicate directly with hardware devices and the system BIOS.  For example, a device driver might receive a request from the OS to read some data; the device driver satisfies the request by executing code in the device firmware that reads data in a way that is unique to the device. Device drivers are usually installed in one of two ways: (1) before a specific hardware device is attached to a computer, (2) after a device has been attached and identified. In the latter case, the OS recognizes the device name and signature; it then locates and installs the device driver software onto the computer.
  • 10. Programming atMultiple Levels Assembly language programs have power and flexibility in the area of input-output programming.  They can choose from the following access levels
  • 12. AccessLevels  Level 3: Call library functions to perform generic text I/O and file-based I/O. We supply such a library with this book, for instance.  Level 2: Call operating system functions to perform generic text I/O and file-based I/O. If the OS uses a graphical user interface, it has functions to display graphics in a device-independent way.  Level 1: Call BIOS functions to control device-specific features such as color, graphics, sound, keyboard input, and low-level disk I/O.  Level 0: Send and receive data from hardware ports, having absolute control over specific devices. This approach cannot be used with a wide variety of hardware devices, so we say that it is not portable.
  • 13. Scenario1  Level 1 (BIOS) works on all systems having a standard BIOS, but will not produce the same result on all systems.  For example, two computers might have video displays with different resolution capabilities. A programmer at Level 1 would have to write code to detect the user’s hardware setup and adjust the output format to match. Level 1 runs faster than Level 2 because it is only one level above the hardware.
  • 14. Scenario2  Level 0 (hardware) works with generic devices such as serial ports and with specific I/O devices produced by known manufacturers.  Programs using this level must extend their coding logic to handle variations in I/O devices. Real-mode game programs are prime examples because they usually take control of the computer. Programs at this level execute as quickly as the hardware will permit.
  • 15. Questions  Of the four levels of input/output in a computer system, which is the most universal and portable?  2. What characteristics distinguish BIOS-level input/output?  3. Why are device drivers necessary, given that the BIOS already has code that communicates with the computer’s hardware?
  • 17. Assembly Language (BasicLanguageElements)  Line 1 starts the main procedure, the entry point for the program  Line 2 places the integer 5 in the eax register  Line 3 adds 6 to the value in EAX, giving it a new value of 11  Line 5 calls a Windows service (also known as a function) named ExitProcess that halts the program and returns control to the operating system. This is the ending variable.
  • 19.  The sum variable is declared on Line 2, where we give it a size of 32 bits, using the DWORD keyword.  Marked .code and .data directives, are called segments.
  • 20. IntegerLiterals  An integer literal (also known as an integer constant) is made up of an optional leading sign, one or more digits, and an optional radix character that indicates the number’s base Elements within square brackets [..] are optional and elements within braces {..} require a choice of one of the enclosed elements, separated by the | character. Elements in italics identify items that have known definitions or descriptions.
  • 21. examples  So, for example, 26 is a valid integer literal. It doesn’t have a radix, so we assume it’s in decimal format.  If we wanted it to be 26 hexadecimal, we would have to write it as 26h. Similarly, the number 1101 would be considered a decimal value until we added a “b” at the end to make it 1101b (binary)
  • 22.
  • 23. ConstantInteger Expressions Mathematical expression involving integer literals and arithmetic operators. Each expression must evaluate to an integer, which can be stored in 32 bits (0 through FFFFFFFFh).
  • 25. Operator precedence • Refers to the implied order of operations when an expression contains two or more operators.
  • 26.
  • 27. RealNumber Literals  Real number literals (also known as floating-point literals) are represented as either decimal reals or encoded (hexadecimal) reals.  A decimal real contains an optional sign followed by an integer, a decimal point, an optional integer that expresses a fraction, and an optional exponent:
  • 29. Character Literals  A character literal is a single character enclosed in single or double quotes.  The assembler stores the value in memory as the character’s binary ASCII code. Examples are: Character literals are stored internally as integers, using the ASCII encoding sequence. So, when you write the character constant “A,” it’s stored in memory as the number 65 (or 41 hex).
  • 30. StringLiterals A string literal is a sequence of characters (including spaces) enclosed in single or double quotes
  • 31.
  • 32. ReservedWords  Reserved words have special meaning and can only be used in their correct context. Reserved works, by default, are not case-sensitive.  For example, MOV is the same as mov and Mov.  There are different types of reserved words:
  • 33. Identifiers  An identifier is a programmer-chosen name. It might identify a variable, a constant, a procedure, or a code label. There are a few rules on how they can be formed:  They may contain between 1 and 247 characters.  They are not case sensitive.  The first character must be a letter (A..Z, a..z), underscore (_), @ , ?, or $. Subsequent characters may also be digits.  An identifier cannot be the same as an assembler reserved word.
  • 34.
  • 35. Directives  A directive is a command embedded in the source code that is recognized and acted upon by the assembler. Directives do not execute at runtime, but they let you define variables, macros, and procedures.  They can assign names to memory segments and perform many other housekeeping tasks related to the assembler.  Directives are not, by default, case sensitive. For example, .data,.DATA, and .Data are equivalent.
  • 36. Directives  The following example helps to show the difference between directives and instructions.  The DWORD directive tells the assembler to reserve space in the program for a doubleword variable.  The MOV instruction, on the other hand, executes at runtime, copying the contents of myVar to the EAX register:
  • 37. Defining Segments  One important function of assembler directives is to define program sections, or segments.  Segments are sections of a program that have different purposes.  For example,one segment can be used to define variables, and is identified by the .DATA directive: .data  The .CODE directive identifies the area of a program containing executable instructions: .code  The .STACK directive identifies the area of a program holding the runtime stack, setting its size .stack 100h
  • 38. Instructions  An instruction is a statement that becomes executable when a program is assembled. Instructions are translated by the assembler into machine language bytes, which are loaded and executed by the CPU at runtime.  An instruction contains four basic parts:  Label (optional)  Instruction mnemonic (required)  Operand(s) (usually required)  Comment (optional)
  • 39. Label  A label is an identifier that acts as a place marker for instructions and data. A label placed just before an instruction implies the instruction’s address.  Similarly, a label placed just before a variable implies the variable’s address.  There are two types of labels: Data labels and Code labels.  A data label identifies the location of a variable, providing a convenient way to reference the variable in code.
  • 40. Label  A label in the code area of a program (where instructions are located) must end with a colon (:) character. Code labels are used as targets of jumping and looping instructions.  For example, the following JMP (jump) instruction transfers control to the location marked by the label named target, creating a loop: A code label can share the same line with an instruction, or it can be on a line by itself:
  • 41. Instruction Mnemonic  An instruction mnemonic is a short word that identifies an instruction.  In English, a mnemonic is a device that assists memory.  Similarly, assembly language instruction mnemonics such as mov, add, and sub provide hints about the type of operation they perform
  • 43. Operands  An operand is a value that is used for input or output for an instruction. Assembly language instructions can have between zero and three operands, each of which can be a register, memory operand, integer expression, or input–output port.
  • 44. Operands  There are different ways to create memory operands—using variable names, registers surrounded by brackets, for example.  A variable name implies the address of the variable and instructs the computer to reference the contents of memory at the given address
  • 46.
  • 47. Comments  Comments are an important way for the writer of a program to communicate information about the program’s design to a person reading the source code. The following information is typically included at the top of a program listing:  Description of the program’s purpose  Names of persons who created and/or revised the program  Program creation and revision dates  Technical notes about the program’s implementation
  • 48. Comments Comments can be specified in two ways:  Single-line comments, beginning with a semicolon character (;). All characters following the semicolon on the same line are ignored by the assembler.  Block comments, beginning with the COMMENT directive and a user-specified symbol. All subsequent lines of text are ignored by the assembler until the same user-specified symbol appears
  • 49.
  • 50. TheNOP (NoOperation) Instruction  The safest (and the most useless) instruction is NOP (no operation). It takes up 1 byte of program storage and doesn’t do any work.  It is sometimes used by compilers and assemblers to align code to efficient address boundaries.
  • 51. ? 1. Using the value –35, write it as an integer literal in decimal, hexadecimal, octal, and binary formats that are consistent with MASM syntax. 2. (Yes/No): Is A5h a valid hexadecimal literal? 3. (Yes/No): Does the multiplication operator (*) have a higher precedence than the division operator (/) in integer expressions? 4. Create a single integer expression that uses all the operators from Section 3.1.2. Calculate the value of the expression. 5. Write the real number –6.2 104 as a real number literal using MASM syntax. 6. (Yes/No): Must string literals be enclosed in single quotes? 7. Reserved words can be instruction mnemonics, attributes, operators, predefined symbols, and __________. 8. What is the maximum length of an identifier?
  • 54. Microcomputer  The central processor unit (CPU), where calculations and logical operations take place, contains a limited number of storage locations named registers, a high-frequency clock, a control unit, and an arithmetic logic unit.
  • 55. microcomputer  The clock synchronizes the internal operations of the CPU with other system components.  • The control unit (CU) coordinates the sequencing of steps involved in executing machine instructions.  • The arithmetic logic unit (ALU) performs arithmetic operations such as addition and subtraction and logical operations such as AND, OR, and NOT.
  • 56. microcomputer  The CPU is attached to the rest of the computer via pins attached to the CPU socket in the computer’s motherboard.  Most pins connect to the data bus, the control bus, and the address bus.  The memory storage unit is where instructions and data are held while a computer program is running.  The storage unit receives requests for data from the CPU, transfers data from random access memory (RAM) to the CPU, and transfers data from the CPU into memory.  All processing of data takes place within the CPU, so programs residing in memory must be copied into the CPU before they can execute.  Individual program instructions can be copied into the CPU one at a time, or groups of instructions can be copied together
  • 57. Clock  Each operation involving the CPU and the system bus is synchronized by an internal clock pulsing at a constant rate. The basic unit of time for machine instructions is a machine cycle (or clock cycle).  The length of a clock cycle is the time required for one complete clock pulse. In the following figure, a clock cycle is depicted as the time between one falling edge and the next:
  • 58. clock  The duration of a clock cycle is calculated as the reciprocal of the clock’s speed, which in turn is measured in oscillations per second.  A clock that oscillates 1 billion times per second (1 GHz), for example, produces a clock cycle with a duration of one billionth of a second (1 nanosecond).
  • 59.  A machine instruction requires at least one clock cycle to execute, and a few require in excess of 50 clocks  Instructions requiring memory access often have empty clock cycles called wait states because of the differences in the speeds of the CPU, the system bus, and memory circuits.
  • 60. Instruction ExecutionCycle A single machine instruction does not just magically execute all at once. The CPU has to go through a predefined sequence of steps to execute a machine instruction, called the instruction execution cycle.
  • 61. stepsto execute it: 1. First, the CPU has to fetch the instruction from an area of memory called the instruction queue. Right after doing this, it increments the instruction pointer. 2. Next, the CPU decodes the instruction by looking at its binary bit pattern. This bit pattern might reveal that the instruction has operands (input values). 3. If operands are involved, the CPU fetches the operands from registers and memory. Sometimes,this involves address calculations. 4. Next, the CPU executes the instruction, using any operand values it fetched during the earlier step. It also updates a few status flags, such as Zero, Carry, and Overflow. 5. Finally, if an output operand was part of the instruction, the CPU stores the result of its executionin the operand.
  • 64. Readingfrom Memory As a rule, computers read memory much more slowly than they access internal registers. This is because reading a single value from memory involves four separate steps: 1. Place the address of the value you want to read on the address bus. 2. Assert (change the value of) the processor’s RD (read) pin. 3.Wait one clock cycle for the memory chips to respond. 4. Copy the data from the data bus into the destination operand.
  • 65.  Each of these steps generally requires a single clock cycle, a measurement of time based on a clock that ticks inside the processor at a regular rate. Computer CPUs are often described in terms of their clock speeds.  A speed of 1.2 GHz, for example, means the clock ticks, or oscillates,1.2 billion times per second.  So, 4 clock cycles go by fairly fast, considering each one lasts for only 1/1,200,000,000th of a second.  Still, that’s much slower than the CPU registers, which are usually accessed in only one clock cycle.
  • 66. Loadingand Executinga Program  Before a program can run, it must be loaded into memory by a utility known as a program loader.  After loading, the operating system must point the CPU to the program’s entry point, which is the address at which the program is to begin execution
  • 67. STEPS in Loading and Executing Programs  The operating system (OS) searches for the program’s filename in the current disk directory. If it cannot find the name there, it searches a predetermined list of directories (called paths) for the filename. If the OS fails to find the program filename, it issues an error message.  If the program file is found, the OS retrieves basic information about the program’s file from the disk directory, including the file size and its physical location on the disk drive.  The OS determines the next available location in memory and loads the program file into memory. It allocates a block of memory to the program and enters information about the program’s size and location into a table (sometimes called a descriptor table). Additionally, the OS may adjust the values of pointers within the program so they contain addresses of program data.  The OS begins execution of the program’s first machine instruction (its entry point). As soon as the program begins running, it is called a process. The OS assigns the process an identification number (process ID), which is used to keep track of it while running.  The process runs by itself. It is the OS’s job to track the execution of the process and to respond to requests for system resources. Examples of resources are memory, disk files, and input-output devices.  When the process ends, it is removed from memory
  • 68. ***
  • 70. AddressSpace Extended physical addressing - allows a total of 64 GBytes of physical memory to be addressed Real-address mode programs, on the otherhand, can only address a range of 1 MByte.
  • 72. Registers Registers are high-speed storage locations directly inside the CPU, designed to be accessed at much higher speed than conventional memory  When a processing loop is optimized for speed, for example, loop counters are held in registers rather than variables There are eight general-purpose registers, six segment registers, a processor status flags register (EFLAGS), and an instruction pointer (EIP).
  • 73. General Purpose Registers  Portions of some registers can be addressed as 8-bit values.  For example, the AX register has an 8-bit upper half named AH and an 8-bit lower half named AL. The same overlapping relationship exists for the EAX, EBX, ECX, and EDX registers
  • 74.
  • 75. SpecializedUses  EAX is automatically used by multiplication and division instructions. It is often called the extended accumulator register.  The CPU automatically uses ECX as a loop counter.  ESP addresses data on the stack (a system memory structure). It is rarely used for ordinary arithmetic or data transfer. It is often called the extended stack pointer register.  ESI and EDI are used by high-speed memory transfer instructions. They are sometimes called the extended source index and extended destination index registers.  EBP is used by high-level languages to reference function parameters and local variables on the stack. It should not be used for ordinary arithmetic or data transfer except at an advanced level of programming. It is often called the extended frame pointer register.
  • 76. Segment Registers  In real-address mode, 16-bit segment registers indicate base addresses of preassigned memory areas named segments.  In protected mode, segment registers hold pointers to segment descriptor tables.  Some segments hold program instructions (code), others hold variables (data), and another segment named the stack segment holds local function variables and function parameters.
  • 77. Instruction Pointer  The EIP, or instruction pointer, register contains the address of the next instruction to be executed.  Certain machine instructions manipulate EIP, causing the program to branch to a new location.
  • 78. EFLAGSRegister  The EFLAGS (or just Flags) register consists of individual binary bits that control the operation of the CPU or reflect the outcome of some CPU operation.  Some instructions test and manipulate individual processor flags. A flag is set when it equals 1; it is clear (or reset) when it equals 0.
  • 79. ControlFlags  Control flags control the CPU’s operation.  For example, they can cause the CPU to break after every instruction executes, interrupt when arithmetic overflow is detected, enter virtual-8086 mode, and enter protected mode.  Programs can set individual bits in the EFLAGS register to control the CPU’s operation.  Examples are the Direction and Interrupt flags.
  • 80. StatusFlags The status flags reflect the outcomes of arithmetic and logical operations performed by the CPU.  They are the Overflow, Sign, Zero, Auxiliary Carry, Parity, and Carry flags.
  • 81. StatusFlags  The Carry flag (CF) is set when the result of an unsigned arithmetic operation is too large to fit into the destination.  The Overflow flag (OF) is set when the result of a signed arithmetic operation is too large or too small to fit into the destination.  The Sign flag (SF) is set when the result of an arithmetic or logical operation generates a negative result.  The Zero flag (ZF) is set when the result of an arithmetic or logical operation generates a result of zero.  The Auxiliary Carry flag (AC) is set when an arithmetic operation causes a carry from bit 3 to bit 4 in an 8-bit operand.  The Parity flag (PF) is set if the least-significant byte in the result contains an even number of 1 bits.
  • 82.
  • 83. Questions 1. The central processor unit (CPU) contains registers and what other basic elements? 2. Why does memory access take more machine cycles than register access? 3. What are the three basic steps in the instruction execution cycle? 4. Define clock by its function on computer system. 5. What is the difference between Extended physical addressing and Real-address mode programs? 6. List two registers and its uses in addressing.