You are on page 1of 1000

COMPUTER ENGG. DEPTT .

1999-2000
MICROPROCESSOR & APPLICATIONS

CE-6265
TOTAL NO. OF SLIDES:1000
TOTAL NO. OF FLOPPIES USED:
PREPARED BY :Manoj Jambla
CE-6265

WHY MICROPROCESSOR IS
IMPORTANT
THE FIELD OF COMPUTER IS CHANGING AT A
VERY RAPID RATE.WITH THE
ADVANCEMENT IN THE TECHNOLOGY, NEW
MICROPROCESSOR ARE BEING DEVELOPED
DAY BY DAY.

Cont.
CE-6265

THIS SUBJECT IS IMPORTANT FOR


THE TECHNICIANS FOR THE POINT
OF VIEW THAT NOW A DAYS EACH
AND EVERY INDUSTRY IS
COMPUTERISED AND MPUs ARE
WIDELY USED IN THE INDUSTRIES.
CE-6265

Cont.

EARLIER WE HAVE USED 8 BIT OR 16


BIT MICROPROCESSORS. NOW A
DAYS WITH THE RAPID CHANGE IN
THE TECHNOLOGY 64 BIT
MICROPROCESSORS ARE THERE.
CE-6265

Cont.

THESE MICROPROCESSORS PROVIDE


BETTER FACILITIES TO PERSONEL
COMPUTERS AND OTHER
INDUSTRIAL SYSTEMS WHICH USE 16
BIT MICROPROCESSORS AND 8 BIT
MICROCONTROLLERS.
Cont.
CE-6265

TEACHING SCHEME
TOTAL NO. OF LECTURES

TOTAL NO. OF PRACTICALS 2

CE-6265

TOPICS OF
MICROPROCESSORS

CE-6265

INTRODUCTION TO
16 BIT MICROPROCESSORS:
INTERNAL ARCHITECTURE OF
8086, INTERNAL REGISTERS,
PHYSICAL AND LOGICAL ADDRESS
CE-6265

Cont.

GENERATION , MAXIMUM AND


MINIMUM MODES , CLOCK
GENERATION , COMPARISON
BETWEEN MAX AND MIN MODE
Cont.
CE-6265

PROGRAMMING OF 8086
ADDDRESSING MODES,INSTRUCTION
FORMAT,INSTRUCTION TEMPLATES
AND HAND ASSEMBLY,INSTRUCTION
SET,DATA TRANSFER,ARITHMATIC
CE-6265

Cont.

BIT MANIPULATION,STRING
INSTRUCTIONS , PROGRAM
TRANSFER AND PROCESS
CONTROL INSTRUCTIONS
Cont.
CE-6265

MEMORY AND I/O


INTERFACE
MEMORY INTERFACE
BLOCK DIAGRAM
I/O INTERFACE
Cont.
CE-6265

INTERRUPT INTERFACE
OF 8086
TYPE OF INTERRUPTS

INTERRUPT MASKING
SOFTWARE INTERRUPTS
CE-6265

Cont.

INTRODUCTION TO
MICROCONTROLLERS

MAIN FEATURES

ARCHITECTURE
APPLICATIONS OF 8051 OR 8031
Cont.
CE-6265

INTRODUCTION TO 32 BIT
MICROPROCESSORS

80386

80486

PENTIUM
CE-6265

EVALUATION SCHEME
TOTAL MARKS

125

INTERNAL ASSESMENT 25
EXTERNAL ASSESMENT 75
Cont.
CE-6265

PRACTICAL ASSESMENT

25

DURATION AND

STYLE OF EXAMINATION 3 HOURS


PASS MARKS

30
CE-6265

TEACHING &
EXAMINATION CALENDER
TEACHING DAYS :
PREPRATORY
HOLIDAYS

16TH JULY TO
20TH NOV. 1999

: 22 NOV. TO
24 NOV. 1999

Cont.
CE-6265

PRACTICAL EXAMS : 25TH NOV TO


29 NOV. 1999
BOARD EXAMS

: 1ST DEC. TO
7TH JAN 2000

BREAK

CE-6265

7TH JAN TO
10TH JAN. 2000

LIST OF PRACTICALS
STUDY OF INSTRUCTIONS OF

8086 USING DEBUG


ADDITION AND SUBTRACTION
OF MULTIBYTE NUMBERS
MULTIPLICATION OF
UNSIGNED/SIGNED NUMBERS
CE-6265

DIVISON OF SIGNED/UNSIGNED
NUMBERS
SORTING STRINGS IN
ASCENDING AND DESCENDING
ORDER

CE-6265

Cont.

MODULAR PROGRAMMING
USING SUBROUTINES
STUDY OF MICROCONTROLLERS
8051 OR 8031

CE-6265

BOOKS AND REFERENCES


1. MICROPROCESSORS AND
APPLICATIONS
BY

DOGULAS .V.HALL
PUBLICATION

TMH
CE-6265

Cont.

2. MICROCOMPUTER SYSTEM THE

8086/8088 FAMILY
By

YU CHENG LIU
AND

GIBSON

GLENN A

Publication

Cont.
CE-6265

PHI

3. PROGRAMMING THE 80286,80386,

80486 AND PENTIUM BASED


PERSONEL COMPUTER

By

BARRY . B . BRAY
Publication:

PRENTICE HALL OF
INDIA PVT LTD.
CE-6265

Cont.

4. THE 8086/8088 MICROPROCESSOR


ARCHITECTURE,PROGRAMMING
DESIGN AND INTERFACING
By :

BHUPINDER SINGH
CHHABRA
Publication :

DANPAT RAI & SONS


CE-6265

TOPIC WISE BREAKUP OF


SLIDES

INTRODUCTION TO 16 BIT
MICROPROCESSOR

PROGRAMMING 8086
PROGRAMMING EXERCISE
CE-6265

Cont.

MEMORY & I./O INTERFACE

INTERRUPT INTERFACE

INTRODUCTION TO
MICROCONTROLLERS

INTRODUCTION TO 32 BIT
MICROPROCESSORS
CE-6265

Introduction

8086S INTERNAL
CONFIGURATION
17/ 9/ 99

CE-6265

L01 OF 40

1 of 20

Introduction
BLOCK DIAGRAM OF 8086
INST. QUEUE
DATA REGISTERS
AD
AH AL
CONTROL
BH BL
20 PINS
LOGIC
CH CL
DH DL
POINTERS
CONTROL
SP
ALU
PSW

17/ 9/ 99

BP
SI
DI

SEGMENT REG.
CS
SS

IP*

ES

CE-6265

DS

L01 OF 40

+5V
2 GND
CLK

2 of 20

CPU
ARHITECTURE

Introduction

*** THREE GROUPS


*** DATA GROUP
*** CONTROL GROUP
*** SEGMENT GROUP
17/ 9/ 99

CE-6265 L01 OF 40

3 of 20

REGISTERS

Introduction

1) DATA GROUP REGISTERS


2) PONTER AND INDEX REGISTERS
3) SEGMENT REGISTERS
4) INSTRUCTION POINTER
5) FLAG REGISTER
17/09/99

CE-6265

L 01 OF 40

4 OF 20

DATA GROUP
REGISTERS

Introduction

* IT HAS 4 GENERAL PURPOSE


REGISTERS AX, BX ,CX, DX .
* THE AX REGISTER SERVES
AS AN ACCUMULATOR .
17/ 9/ 99

CE-6265

L01 OF 40

5 of 20

Introduction

* BX REGISTER SERVES AS THE


BASE REGISTER USED IN THE
CALCULATION OF 8086 DATA
MEMORY .
17/ 9/ 99

CE-6265

L01 OF 40

6of 20

Introduction

* CX REGISTER SERVES AS A COUNT


REGISTER .
* DX REGISTER SERVES AS THE DATA

REGISTER USED FOR INPUT/OUTPUT


ADDRESSING
17/ 9/ 99

CE-6265

L01 OF 40

7of 20

Introduction

POINTER AND
INDEX REGISTER
* THERE ARE TWO 16 BIT
POINTER REGISTERS:* STACK POINTER
* BASE POINTER

17/ 9/ 99

CE-6265

L01 OF 40

8 of 20

Introduction

* TWO INDEX REGISTERS:* SOURCE INDEX REGISTER


* DESTINATION INDEX
REGISTER
17/ 9/ 99

CE-6265

L01 OF 40

9of 20

Introduction

SEGMENT REGISTERS
* 8086 MEMORY IS SEGMENTED
INTO 64K MEMORY.
* FOUR SEGMENTS ARE:1. CODE SEGMENT
17/ 9/ 99

CE-6265

L01 OF 40

10 of 20

Introduction

2. DATA SEGMENT
3. EXTRA SEGMENT
4. STACK SEGMENT

17/ 9/ 99

CE-6265

L01 OF 40

11 of 20

INSTRUCTION
POINTER

Introduction

* ALWAYS POINTS TO THE


NEXT INSTRUCTION TO BE
CARRIED OUT FROM
MEMORY.

17/ 9/ 99

CE-6265

L01 OF 40

12of 20

REGISTERS

Introduction

***POINTER GROUP
CONSIST IP,SP,BP,SI,DI.

17/ 9/ 99

CE-6265

L01 OF 40

13of 20

*** 8 GENERAL PURPOSE

Introduction

REGISTERS NAMELY
AX , BX , CX , DX , AH ,BH , CH,
DH , AL, BL , CL , DL.
17/ 9/ 99

CE 6265 L01 OF 40

14 of 20

Introduction

*** SEGMENT GROUP CONSISTS

OF CS, DS, SS & ES REGISTERS.


*** EFFECTIVE ADDRESS.

17/ 9/ 99

CE-6265

L01 OF 40

15 of 20

*** OFFSET ADDRESS.

Introduction

*** PHYSICAL ADDRESS =


EFFECTIVE ADDRESS +
SEGMENT ADDRESS.
17/ 9/ 99

CE-6265

L01 OF 40

16 of 20

Introduction

ADVANTAGES OF
SEGMENT REGISTER

A) USE OF MEMORY AREAS


FOR PROGRAM & STACK.
17/ 9/ 99

CE-6265

L01 OF 40

17 of 20

Introduction

B) PUT THE PROGRAM OR


DATA INTO DIFFERENT
AREAS OF MEMORY.

17/ 9/ 99

CE-6265

L01 OF 40

18of 20

Introduction

C) ALLOW MEMORY CAPACITY


1 MEGABYTE ADDRESS OF
INDIVIDUAL INSTRUCTIONS
16 BITS WIDE.
17/ 9/ 99

CE-6265

L01 OF 40

19of 20

Introduction

D) INSTRUCTION, DATA & STACK


PORTION OF A PROGRAM
MORE THAN 64K BYTES.

17/ 9/ 99

CE-6265

L01 OF 40

20of 20

Introduction

FLAG REGISTER
TYPES:----A) CONDITIONAL FLAG
B) CONTROL FLAG
17/ 9/ 99

CE-6265

L02 OF 40

1 of 25

Introduction

15 14

13 12 11 10

OF DF IF TF SF ZF

4
AF

2
PF

8086 FLAGS

8086S
17/ 9/ 99

CE-6265

PSW
2 OF 40

2 of 25

0
CF

CONDITIONAL
FLAG

Introduction

A) SIGN FLAG
B) ZERO FLAG
C) PARITY FLAG
17/ 9/ 99

CE-6265

L02 OF 40

3of 25

Introduction

D) CARRY FLAG
E) AUXILIARY FLAG
F) OVERFLOW FLAG

17/ 9/ 99

CE-6265

L02 OF 40

4 of 25

Introduction

CONTROL FLAG
A) DIRECTION FLAG
B) INTERRUPT FLAG
C) TRAP FLAG
17/ 9/ 99

CE-6265

L02OF 40 1of 21

Introduction

C (carry )
1) HOLD THE CARRY AFTER
ADDITION Or THE BORROW
AFTER SUBTRACTION.

17/ 9/ 99

CE-6265

L02OF 40

2of 21

Introduction

2) INDICATES ERROR
CONDITIONS AS DICTATED
BY SOME PROGRAMS &
PROCEDURES.
17/ 9/ 99

CE-6265

L02 OF 40

3of 21

Introduction

P ( parity )
1) LOGIC 0 FOR ODD PARITY &
A LOGIC 1 FOR EVEN PARITY.
2) ITS FINDS LITTLE APPLICATION IN PROGRAMMING.
17/ 9/ 99

CE-6265

L02 OF 40

4of 21

Introduction

3) PARITY IS COUNT OF
ONES IN A NUMBER
EXPRESSED AS EVEN Or
ODD.
17/ 9/ 99

CE-6265

L02 OF 40

5of 21

Introduction

A(auxiliary carry)
1) IT IS TESTED BY DAA & DAS
INSTRUCTION.
17/ 9/ 99

CE-6265

L02 OF 40

6 of 21

2) HOLDS CARRY AFTER

Introduction

ADDITION OR BORROW AFTER


SUBTRACTION BETWEEN BIT
POSITIONS 3 & 4 OF THE
RESULT.
17/ 9/ 99

CE-6265

L02 OF 40

7 of 21

Z (zero)

Introduction

1) SHOWS THAT THE RESULT


OF AN ARITHMETIC Or LOGIC
OPERATION IS ZERO.
17/ 9/ 99 CE-6265

L02 OF 40

8of 21

Introduction

2) IF Z=1, RESULT IS 0.
3) IF Z=0, RESULT IS NOT 0.

17/ 9/ 99

CE-6265

L02 OF 40

9of 21

Introduction

S (sign)
1) HOLD ARITHMETIC SIGN OF
THE RESULT AFTER AN
ARITHMETIC Or LOGIC
INSTRUCTION EXECUTES.
17/ 9/ 99

CE-6265

L02 OF 40

10 of 21

Introduction

2) IF S=1, SIGN BIT IS SET Or


NEGATIVE.
3) IF S=0, BIT IS CLEARED Or
POSITIVE.
17/ 9/ 99

CE-6265

L02 OF 40

11 of 21

Introduction

T (trap)
1) ENABLES TRAPPING THROUGH
AN ON-CHIP DEBUGGING
FEATURE .

17/ 9/ 99

CE-6265

L02 OF 40

12of 21

Introduction

2) IF T=1, MPU INTERRUPTS THE


FLOW OF PROGRAM AS INDIC-ATED BY DEBUG & CONTROL
REGISTERS.
3) IF T=0, THE TRAPPING (DEBUG-GING) FEATURE IS DISABLED.
17/ 9/ 99

CE-6265

L02 OF 40

13 of 21

Introduction

4) THE CODE VIEW PROGRAM CAN


USE THE TRAP FEATURE &
DEBUG REGISTERS TO DEBUG
FAULTY SOFTWARE.
17/ 9/ 99

CE-6265

L02 OF 40

14of 21

Introduction

I (interrupt )
1) CONTROLS THE OPERATION OF
THE INTR INPUT PIN.
2) IF I=1, THE INTR PIN IS ENABLED .

17/ 9/ 99

CE-6265

L02 OF 40

15of 21

Introduction

3) IF I=0, PIN IS DISABLED.


4) STATE OF I FLAG BIT IS
CONTROLLED BY STI & CLI.
17/ 9/ 99

CE-6265

L02 OF 40

16 of 21

D (direction)

Introduction

1) SELECTS EITHER THE INCREMENT


Or DECREMENT MODE FOR THE DI
Or SI REGISTERS DURING STRING
INSTRUCTIONS.
17/ 9/ 99

CE-6265

L02 OF 40

17of 21

Introduction

2) IF D=1 , REGISTERS ARE


AUTOMATICALLY
DECREMENTED.
3) IF D=0, REGISTERS ARE AUTOMA-TICALLY INCREMENTED.

17/ 9/ 99

CE-6265

L02 OF 40

18 of 21

Introduction

4) D FLAG IS SET WITH THE STD


I NSTRUCTION.
5) D FLAG IS CLEARED WITH THE
CLD INSTUCTION.

17/ 9/ 99

CE-6265

L02 OF 40

19of 21

O (over flow)

Introduction

1) OCCURS WHEN SIGNED NUMBERS


ARE ADDED Or SUBTRACTED.
2) FOR UNSIGNED OPERATION, THIS
FLAG IS IGNORED.

17/ 9/ 99

CE-6265

L02 OF 40

20 of 21

Introduction

3) INDICATES THAT THE RESULT


HAS EXCEEDED CAPACITY OF
MACHINE .

17/ 9/ 99

CE-6265

L02 OF 40

21 of 21

Introduction

SYSTEM BUS
A SET OF CONDUCTORS USED FOR
COMMUNICATING INFORMATION
BETWEEN THE COMPONENTS IN A
COMPUTER SYSTEM IS CALLED A
BUS.
17/ 9/ 99

CE-6265

L03 OF 40 1 of 26

Introduction

INTERNAL BUS
IF A BUS CONNECTS TWO
MINOR COMPONENTS WITHIN
A MAJOR COMPONENT,
CALLED AN INTERNAL BUS .

17/ 9/ 99

CE-6265

L03 OF 40 2 of 26

Introduction

EXTERNAL BUS
WHEN A BUS CONNECTS TWO
MAJOR COMPONENTS, SUCH
AS A CPU & AN INTERFACE,
CALLED AN EXTERNAL BUS.
23/ 9/ 99

CE-6265

L03 OF 40 3 of 26

VCC

VCC
CLK
GENERA-TOR

8086
CPU

MN / MX RD
CLK
WR
READY M / IO
RESET

BHE

ALE

STB

BHE

OE

A19
-A16
MEMORY
DATA

AD 15 -AD 0
DEN

DT / R
A0 - A7
T
OE

CE-6265

I / O PER
-IPHRAL

DATA BUS

Introduction

ARCHITECTURE
*CIRCUITS DRIVE THE PINS ON
SINGLE CHIP, CPU HAS LIMIT-ED DRIVING CAPABILITY &
CONNECTED TO ONLY A FEW
INTERFACES.
23/ 9/ 99

CE-6265

L03 OF 40 5 OF 26

Introduction

* SYSTEM NEEDS BUS DRIVER &


RECIVER CIRCUITS CONNECTED
TO BUS IN ORDER TO MAINTAIN
ADEQUTE SIGNAL QUALITY.
* TIMING OF THE SIGNALS WITHIN
THE CPU & BUS CONTROL LOGIC
IS CONTROLLED BY A CLOCK.
23/ 9/ 99

CE-6265

L03 OF 40 6 OF 26

Introduction

MICROPROCESSOR
8086
23/ 9/ 99

CE-6265 L03 OF 40 7 OF 26

Introduction

INTRODUCTION
*** 40 PIN IC
*** 16 DATA LINES
23/ 9/ 99

CE-6265 L03 OF 40

8 OF 26

*** 20 ADDRESS LINES

Introduction

*** 29,000 TRANSISTORS


ARE FABRICATED.

23/ 9/ 99

CE-6265

L03 OF 40

9 OF 26

FEATURES

Introduction

***16 BIT MICROPROCESSOR.


***CONTAINS 29,000
TRANSISTORS.
*** FABRICATED BY
HMOS TECHNOLOGY.
23/ 9/ 99

CE-6265

L03 OF 40 10 OF 26

Introduction

MICROPROCESSOR
8088
23/ 9/ 99 CE 6265 L03 OF 40 11 OF 26

Introduction

INTRODUCTION
* 8 BIT MICROPROCESSOR
* 16 ADDRESS LINES

23/ 9/ 99 CE 6265 L03 OF 40 12 OF 26

Introduction

* INTERNAL STRUCTURE
SAME AS THAT OF 8086
* INTERNAL FUNCTION SAME
AS THAT OF 8086
23/ 9/ 99

CE 6265 L03 OF 40 13 OF 26

8086 PIN DIAGRAM


GND
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND

23/ 9/ 99

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

8086
CPU

CE-6265

40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21

MAX
MIN
MODE
MODE
VCC
AD15
A16/S3
A17/S
A18/S5
A19/S6
BHE/S7
MN/MX
RD ___
RQ/GTO (HOLD)
RQ/GT1 (HLDA)
LOCK (WR) _
_
S2
(M / IO)
S1
(DT/R)
S0
(DEN)
QS0
(ALE)
QSJ
(INTA)
TEST
READY
RESET

Introduction

L03 OF 40 14 OF 26

8086
CONFIGURATIONS

Introduction

*TWO MODES OF OPERATION:-1) MINIMUM MODE


2) MAXIMUM MODE
23/ 9/ 99

CE-6265

L03 OF 40 15 OF 26

Introduction

MINIMUM MODE
* USED FOR A SMALL
SYSTEM WITH A SINGLE
PROCESSOR.
* GENERATES ALL THE
NECESSARY BUS CONTROL
SIGNALS DIRECTLY.
23/ 9/ 99

CE-6265

L03 OF 40 16 OF 26

Introduction

MAXIMUM MODE
* USED FOR MEDIUM TO
LARGE SIZE SYSTEM.
* BUS CONTROL SIGNALS ARE
ENCODED INTO 3 STATUS BIT.
23/ 9/ 99

CE-6265

L03 OF 40

17 OF 26

*REMAINING BUS CONTROL

Introduction

SIGNALS PROVIDE ADDITIONAL


INFORMATION THAT IS NEEDED
TO SUPPORT MULTIPROCESSOR
CONFIGURATION.
23/ 9/ 99

CE-6265

L01 OF 40 18 OF 26

Introduction

CONFIGURATION
OPTION

* PIN 33 (MN/MX) DETERMINES


THE CONFIGURATION OPTION.
* WHEN IT STRAPPED TO GND
PROCESSOR IS USED IN MAX- IMUM MODE.
23/ 9/ 99

CE-6265

L03 OF 40 19 OF 26

Introduction

* WHEN IT STAPPED TO +5V IT


IS TO BE OPERATED IN ITS
MINIMUM MODE.
* BOTH PROCESSORS MULTIPEX
THE ADDERSS & DATA SIGNALS.
23/ 9/ 99

CE-6265 L03 OF 40 20 OF 26

Introduction

* BOTH HAVE 20 ADDRESS PINS


WITH ADDERSS & STATUS
SIGNALS BEING MULTIPLEXED
ON THE 4 MOST SIGNIFICANT
ADDRESS PINS.
23/ 9/ 99

CE-6265 L01 OF 40 21 OF 26

SYSTEM BUS
TIMING

Introduction

* LENGTH OF BUS CYCLE IN


8086/8088 SYSTEM IS 4 CLOCK
CYCLES DENOTED BY T1
THROUGH T4.
23/ 9/ 99

CE-6265 L03 OF 40 22of 26

Introduction

* IN ADDITION TO THAT AN INDETE- RMINATE NUMBER OF WAIT


STATE CLOCK CYCLES DENOTED
BY Tw (WAIT STATE ).
* WAIT STATE ARE INSERTED
BETWEEN T3 & T4 .
23/ 9/ 99

CE-6265 L01 OF 40 23 OF 26

Introduction

TIMING DIAGRAM OF
8086S READ & WRITE
CYCLE
23/ 9/ 99

CE-6265 L03 OF 40 2 4 OF 26

T1

T2

T3

T4

CLK
A19 / S0 -A16 / S3
ADD BHE OUT

AD 15 - AD0

ADDRESS OUT

STATUS OUT
DATA IN

ALE
LOW= I / O READ. HIGH= MEM. READ

M / IO

RD

DT / R
23/ 9/ 99

CE-6265

L03 OF 40 25 OF 26

CLK

Introduction
T1

T2

A19 /S6-A16/ S3 BHE / S7


ADD. BHE OUT

AD15-AD0

ADDRESS OUT

T3

STATU S

T4

OUT

DATA OUT

ALE
M / IO
WR

LOW = I / O WR, HIGH = MEM WR

DT / R

23/ 9/ 99

CE-6265 L03 OF 40 26 OF 26

Introduction

8086 PIN
CONFIGURATION
17/ 9/ 99

CE-6265

L04 OF 40

1of 25

Introduction

ADDRESS /DATA
BUS

1) AD0-AD15 (ADDRESS /DATA LINES)


2) A16/S3 ,A17/S4 ,A18/S5 ,A19/S6 :
( ADDRESS / STATUS LINES ).

3) BHE/S7 (BUS HIGH ENABLE/ STATUS)


17/ 9/ 99

CE-6265

L04 OF 40

2of 25

Introduction

CONTROL &
STATUS SIGNALS
1) CLK
2) RESET
3) READY
4) RD (READ)
17/ 9/ 99

CE 6265

L04 OF 40

3of 25

Introduction

5) INTR (INTERRUPT REQUEST)


6) NMI(NON MASKABLE INTERRUPT)
7) TEST

17/ 9/ 99

CE-6265

L04 OF 40

4of 25

Introduction

MULTI-FUNCTION
PINS

1) MN/MAX (MINIMUM /
MAXIMUM MODE)
2) DEN (DATA ENABLE)
17/ 9/ 99

CE-6265

L04 OF 40

5of 25

Introduction

3) DT/R (DATA TRANSMIT/RECEIVE)


4) M/IO ( MEMORY/IO SELECT)
5) S0-S2 ( MAXIMUM MODE STATUS
SIGNALS )
6) LOCK (WR)
17/ 9/ 99

CE-6265

L04 OF 40

6 of 25

Introduction

7) ALE (ADDRESS LATCH ENABLE)

8) INTA(INTERRUPT ACKNOWLEDGE)

9) QS0/QS1 (QUEUE STATUS IN THE


MAXIMUM MODE)

10) RQ/GT0(HOLD), RQ1/GT1(HLDA)


17/ 9/ 99

CE-6265

L04 OF 40

7of 25

Introduction

AD0-AD15
* TIME-MULTIPLEXED BIDIRECTIONAL TRISTATE
ADDRESS/DATA LINES.

17/ 9/ 99

CE-6265

L04 OF 40

8 of 25

* DURING T1 STATE OF A BUS CYCLE


CONSISTING OF 4 CLOCK STATES.

* IF BUS CYCLE IS WRITE CYCLE,


ADDRESS LINES ARE NOT TRI-STATED.

* LINES ARE TRISTATED DURING


INTA & HOLD OPERATIONS.
17/ 9/ 99

CE-6265

L04 OF 40

9 of 25

Introduction

ADDRESS/STATUS
LINES
* TIME MULTIPLEXED TRISTATE ADDRESS STATUS O/P
LINES.
17/ 9/ 99

CE-6265

L04 OF 40

10 of 25

* DURING T1, THEY SERVE AS 4


MOST SIGNIFICANT ADDRESS
LINES.
* DURING I/O OPERATIONS,THESE
ARE AT 0 LEVEL.
* TRISTATED DURING HOLD
OPERATION.
17/ 9/ 99

CE-6265

L04 OF 40

11 of 25

Introduction

CHARACTERISTICS
S4
0
0

S3
0
1

CHARACTERISTICS

CODE SEGMENT ACCESS


Or NONE

DATA SEGMENT ACCESS

17/ 9/ 99

EXTRA SEGMENTACCESS
STACK SEGMENT ACCESS

CE-6265

L04 OF 40

12 of 25

Introduction

S5 : INDICATES STATUS OF THE


INTERRUPT ENABLE FLAG &
IS UPDATED AT THE BEGINING OF EACH BUS CYCLE.
S6 : ALWAYS ZERO & NO
SIGNIFICANCE IS ATTACHED
TO IT.
17/ 9/ 99

CE-6265

L04 OF 40

13 of 25

Introduction

BHE / S7
* TRISTATE OUTPUT LINE.
* DURING T1, BHE GOES LOW,IF
BUS CYCLE REFERS TO READ,
WRITE Or INTA CYCLE.
17/ 9/ 99

CE-6265

L04 OF 40

14of 25

Introduction

* USED AS A CHIP SELECT SIGNAL


FOR THE HIGH - ORDER BYTE
MEMORY Or I/O BANK.

* TRISTATED DURING HOLD


OPERATION.

* S7 IS AVAILABLE DURING T2 TO T4
& IS ALWAYS ZERO.
17/ 9/ 99

CE-6265

L04 OF 40

15of 25

Introduction

CHARACTERISTICS
BHE A0
0
0
0
1
1

1
17/ 9/ 99

CHARACTERISTICS
WORD TRANSFER
UPPER BYTE TRANSFER
FORM / TO ODD ADDRESS
LOWER BYTE TRANSFER
FORM / TO EVEN ADDRESS
NONE
CE-6265

L04 OF 40

16 of 25

Introduction

CLK
* PROVIDES BASIC TIMING FOR
PROCESSOR LOGIC & BUS
CONTROLLER.
* ON DUTY CYCLE OF 33 %.
17/ 9/ 99

CE-6265

L04 OF 40

17 of 25

Introduction

* 8284A CLOCK GENERATOR FEEDS


CPU WITH NECESSARY CLOCK
FREQUENCY.
* FREQUENCY RANGE IS BETWEEN
2 TO 8 MHZ.

17/ 9/ 99

CE-6265

L04 OF 40

18 of 25

Introduction

RESET
* TERMINATES PROCESSOR
ACTIVITY.
* RESET HIGH PULSE LAST FOR
AT LEAST 50 MICRO SECOND.
17/ 9/ 99

CE-6265

L04 OF 40

19 of 25

Introduction

* AFTER GOES LOW ,CPU TAKES 10


CLOCK STATES DO FOLLOWING
INITIALIZATION :---a) CLEAR FLAG REGISTER, DS , ES, SS,
IP. IP DENOTED AS PC.
17/ 9/ 99

CE-6265

L04 OF 40

20 of 25

Introduction

b) LOAD CODE SEGMENT (CS)


REGISTER WITH FFFFH SO CPU
STARTS PROGRAM EXECUTION
FROM MEMORY LOCATION
FFFFOH.

17/ 9/ 99

CE-6265

L04 OF 40

21 of 25

Introduction

READY
* ACKNOWLEDGEMENT
SIGNAL FROM ADDRESSED
MEMORY Or I/O DEVICE THAT
IF WILL ACCOMPLISH DATA
TRANSFER OPERATION.
17/ 9/ 99

CE-6265

L04 OF 40

22 of 25

Introduction

* IF READY IS HIGH & SATISFIES THE


SETUP , NO WAIT STATES
INTRODUCED.

* DURING EACH CLOCK OF WAIT


STATE, READY INPUT SIGNAL
LEVEL IS SAMPLED BY CPU.
17/ 9/ 99

CE-6265

L04 OF 40

23of 25

Introduction

RD

* TRISTATE OUTPUT DEVICE.


* INDICATES THAT THE
PROCESSOR IS PERFORMING
A MEMORY Or I/O READ
CYCLE.
17/ 9/ 99

CE-6265

L04 OF 40

24 of 25

Introduction

* USED TO READ DEVICES ON THE


LOCAL BUS.

* ACTIVE LOW DURING T2,T3 & TW.

* TRISTATED DURING HOLD


OPERATION.
17/ 9/ 99

CE-6265

L04 OF 40

25 of 25

INTR

Introduction

* LEVEL SENSTIVE INPUT


WHICH IS SAMPLED DURING
LAST CLOCK STATE OF EACH
INSTRUCTION TO
DETERMINE WHETHER
PROCESSOR ENTER INTO AN
INTA CYCLE.
20/ 09/99

CE-6265

L 05 OF 40

1 OF 25

Introduction

* INTERNALLY MASKED BY SOFT


-WARE RESETTING OF INTERUPT
ENABLE BIT (I) IN FLAG REGISTER

* THIS INPUT SIGNAL IS ISSUED BY


8259A PROGRAMMABLE INTERRUPT
CONTROLLER (PIC).
20/ 09/99 CE-6265

L 05 OF 40

2 OF 25

Introduction

NMI
* RISING EDGE SENSTIVE
INTERRUPT WHICH CAUSES
A TYPE -2 INTERRUPT.
* HIGH FOR ATLEAST 2 CLOCK
CYCLES.
20/ 09/99

CE-6265

L 05 OF 40

3 OF 25

TEST

Introduction

* INPUT SIGNAL WHICH IS


EXAMINED BY CPU DURING
THE WAIT INSTRUCTION.
* IF TEST=1 THEN PROCESSOR
WAITS IN IDEAL STATE.
20/ 09/99 CE-6265

L 05 OF 40

4 OF 25

Introduction

* IT CONTINOUS TO BE IDEAL TILL


THE TEST INPUT BECOMES 0.
* WHEN TEST =0, CPU COMES OUT
OF WAIT STATE.
20/ 09/99

CE-6265

L 05 OF 40

5 OF 25

Introduction

MN/MAX
* STRABBED HIGH FOR MINIMUM
MODE (SINGLE PROCESSOR).
* STRABBED LOW FOR MAXIMUM
MODE (MULTIPROCESSOR)
20/ 09/99

CE-6265

L 05 OF 40

6 OF 25

Introduction

S0(DEN), S1(DT/R), S2(M/IO) :------* TRISTATED OUTPUT STATUS/


CONTROL SIGNALS.
* TRISTATED DURING HOLD
OPERATION.
20/ 09/99 CE-6265

L 05 OF 40 7 OF 25

Introduction

* SIGNALS REPRESENTS MULTI-FUNCTIONS.


* IN MINIMUM MODE, THEY ARE
DEN , DT/R & M/IO.
* IN MAXIMUM MODE ,THEY ARE
S0, S1 AND S2 STATUS LINES.
20/ 09/99 CE-6265

L 05 OF 40

8 OF 25

DEN
* THIS IS OUTPUT SIGNAL.
* USED TO ENABLE THE 8287
TRANSRECEIVERS.
20/ 09/99
25

CE-6265

L 05 OF 40

9 OF

Introduction

* LOW DURING MEMORY Or I/O


READ/WRITE CYCLES Or INTA
CYCLES.
* DURING READ Or INTA CYCLE,
DEN REMAINS ACTIVE LOW FROM
MIDDLE OF T2 UNTIL BEGINNING
OF T4 CLOCK STATE.
20/ 09/99

CE-6265

L 05 OF 40

10 OF 25

Introduction

* DURING WRITE CYCLE , IT IS


ACTIVE LOW FROM BEGINNING OF
T2 UNTIL THE MIDDLE OF T4.
20/ 09/99 CE-6265

L 05 OF 40

11 OF 25

Introduction

DT/R
* THIS IS OUTPUT SIGNAL.
* CONTROLS DIRECTION OF
DATA FLOW THROUGH THE
TRANSRECEIVERS.
20/ 09/99 CE6265

Introduction

* DT/R=1 INDICATES DATA


TRANSMIT (WRITE) CYCLE.
* DT/R INDICATES DATA RECEIVE
(READ) CYCLE.

20/ 09/99

CE-6265

L 05 OF 40

13 OF 25

Introduction

* REMAINS ACTIVE FROM YHE


MIDDLE OF T4 OF THE PREVIOUS
BUS CYCLE UNTIL THE MIDDLE
OF T4 OF CURRENT BUS CYCLE.
20/ 09/99

CE-6265

L 05 OF 40

14 OF 25

M/IO

Introduction

* M/IO=0 MEANS I/O


OPERATIONS.
* M/IO=1 MEANS MEMORY
OPERATION.
20/ 09/99

CE-6265

L 05 OF 40

15 OF 25

Introduction

* REMAINS ACTIVE FROM THE

MIDDLE OF T4 OF THE PREVIOUS


BUS CYCLE & LASTS TILL THE
MIDDLE OF THE T4 CURRENT BUS
CYCLE.
20/ 09/99

CE-6265

L 05 OF 40

16 OF 25

Introduction

S0-S2
* THESE STATUS SIGNALS ARE
FED TO THE 8289 BUS
ARBITER & THE 8288 BUS
CONTROLLER.
20/ 09/99

CE-6265

L 05 OF 40

17 OF 25

Introduction

* THESE INTERFACE COMPONENTS


DECODE THE STATUS LINES &
GENERATE APPROPRIATE MEMORY
& I/O COMMAND & CONTROL
SIGNALS.
20/ 09/99

CE-6265

L 05 OF 40

18 OF 25

Introduction

CHARACTERISTICS
S2 S1 S0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
20/ 09/99

INTERPRETATION
INTA CYCLE
I/O READ
I/O WRIRE
HALT
OPCODE FETCH

CE-6265

L 05 OF 40

19 OF 25

Introduction

S2

S1

S0

INTERPRETATION

MEMORY READ

MEMORY WRIRE

PASSIVE , NO BUS
CYCLES

20/ 09/99

CE-6265

L 05 OF 40

20 OF 25

LOCK

Introduction

* IN MINIMUM MODE , THIS PIN


FUNCTIONS AS WRITE (WR)
SIGNAL.
* TRISTATED DURING HOLD
OPERATION.
20/ 09/99

CE-6265

L 05 OF 40

21 OF 25

Introduction

* IN MAXIMUM MODE , THIS PIN


GETS ACTIVATED DURING LOCK
PREFIXED INSTRUCTIONS .
* WHEN IT IS ACTIVE LOW , THIS
SIGNAL CAN BE USED TO PREVENT
OTHER PROCESSORS FROM
GETTING ACCESS TO SYSTEM BUS.
20/ 09/99

CE-6265

L 05 OF 40

22 OF 25

Introduction

* THE LOCK PIN REMAINS LOW


TILL PREFIXED INSTRUCTION IS
CARRIED OUT.

* LOCK OUTPUT IS CONNECTED


TO THE LOCK INPUT OF 8289
BUS ARBITER.
20/ 09/99 CE-6265

L 05 OF 40

23 OF 25

ALE

Introduction

IN MINIMUM MODE , ALE IS


GENERATED DURING T1
STATE OF A BUS CYCLE.

20/ 09/99

CE-6265 L 05 OF 40

24 OF 25

Introduction

ADDRESSES ARE LATCHED


DURING HIGH TO LOW
TRANSITION OF ALE.

20/ 09/99

CE-6265

L 05 OF 40

25 OF 25

Assembly language

INTRODUCTION
TO
ADDRESSING
MODES
20/ 9/ 99

CE-6265

L06 OF 40

1 of 25

Assembly language

ADDRESSING
MODES
THE WAY IN WHICH
OPERAND IS SPECIFIED
IS CALLED ADDRESSING
MODE
20/ 9/ 99

CE-6265

L06 OF 40

2 of 25

Assembly language

OBJECTIVES
1) EXPLAIN THE OPERATION
OF EACH DATA-ADDRESSING
MODE.
20/ 9/ 99

CE-6265

L06 OF 40

3 of 25

Assembly language

2) USE DATA-ADDRESSING MODES


TO FORM ASSEMBLY LANGUAGE
STATEMENT.

20/ 9/ 99

CE-6265

L06 OF 40

4 of 25

Assembly language

3) EXPLAIN OPERATION OF EACH


PROGRAM MEMORY-ADDRESSING
MODE.

20/ 9/ 99

CE-6265

L06 OF 40

5 of 25

Assembly language

4) USE PROGRAM MEMORY-ADDRES


-SING MODES TO FORM ASSEMBLY
& MACHINE LANGUAGE
STATEMENTS.
20/ 9/ 99

CE-6265

L06 OF 40

6 of 25

Assembly language

5) SELECT

APPROPRIATE

ADDRESSING MODE TO
ACCOMPLISH A GIVEN TASK.

20/ 9/ 99

CE-6265

L06 OF 40

7 of 25

Assembly language

6) DETAIL THE DIFFERENCE BETW-EEN REAL MODE & PROTECTED


-MODE OPERATION WHEN ADDRES-SING MEMORY DATA.
20/ 9/ 99

CE-6265

L06 OF 40

8 of 25

Assembly language

7) DESCRIBE THE SEQUENCE OF


EVENTS THAT PLACE DATA ONTO
THE STACK Or REMOVE DATA FROM
STACK.
20/ 9/ 99

CE-6265

L06 OF 40

9 of 25

Assembly language

8)EXPLAIN HOW A DATA STRUCTURE


IS PLACED IN MEMORY & USED
WITH SOFTWARE.

20/ 9/ 99

CE-6265

L06 OF 40

10 of 25

Assembly language

CATEGORIES
1) DATA ADDRESSES
2) BRANCH ADDRESSES

20/ 9/ 99

CE-6265

L06 OF 40

11 of 25

Assembly language

DATA ADDRESSES
1) IMMEDIATE
2) DIRECT
3) REGISTER
20/ 9/ 99

CE-6265

L06 OF 40

12 of 25

Assembly language

4) REGISTER INDIRECT
5) REGISTER RELATIVE
6) BASED INDEXED
7) RELATIVE BASED INDEXED
20/ 9/ 99

CE-6265

L06 OF 40

13 of 25

MOV INSTRUCTION SHOWING


SOURCE, DESTINATION &
DIRECTION OF DATA FLOW
MOV AX ,

BX

SOURCE
DESTINATION
20/ 9/ 99

CE-6265

L06 OF 40

14 of 25

Assembly language

IMMEDIATE
* TERM IMMEDIATE IMPLIES
THAT THE DATA
IMMEDIATELY FOLLOWS THE
HEXA-DECIMAL OPCODE IN
THE MEMORY.
20/ 9/ 99

CE-6265

L06 OF 40

15 of 25

Assembly language

* IT IS A CONSTANT DATA,WHILE
THE DATA TRANSFERRED FROM A
REGISTER IS VARIABLE DATA.

20/ 9/ 99

CE-6265

L06 OF 40

16 of 25

Assembly language

* OPERATES UPON A BYTE OR


WORD OF DATA.
* IN SYMBOLIC ASSEMBLY
LANGUAGE SYMBOL # IS NOT
USED IN THIS ADDRESSING.
20/ 9/ 99

CE-6265

L06 OF 40

17 of 25

Assembly language

* IN 80386 THROUGH THE PENTIUM


MICROPROCESSOR , THIS
ADDRESSING OPERATES ON
DOUBLEWORD DATA.
20/ 9/ 99

CE-6265

L06 OF 40

18 of 25

Assembly language

* EXAMPLE:----- MOV EBX, 12345678H


THIS INSTRUCTION COPIES A
DOUBLEWORD SIZED 12345678H
IN THE 32 BIT WIDE BX REGISTER
20/ 9/ 99

CE-6265

L06 OF 40

19 of 25

Assembly language

* TRANSFERS THE SOURCEIMMEDIATE BYTE Or WORD OF


DATA INTO THE DESTINATION
REGISTER Or MEMORY LOCATION.
20/ 9/ 99

CE-6265

L06 OF 40

20 of 25

Assembly language

* EXAMPLE:---- MOV AL,22H


THIS INSTRUCTION COPIES A BYTE
SIZED 22H INTO REGISTER AL.

20/ 9/ 99

CE-6265

L06 OF 40

21 of 25

Assembly language

DIRECT
* MOVES A BYTE Or WORD
BETWEEN A REGISTER & A
MEMORY LOCATION AND A
REGISTER.
20/ 9/ 99

CE-6265

L06 OF 40

22 of 25

Assembly language

* TWO BASIC FORMS OF DIRECT


ADDRESSING :---a) DIRECT ADDRESSING
b) DISPLACEMENT ADDRESSING
20/ 9/ 99

CE-6265

L06 OF 40

23 of 25

Assembly language

a) DIRECT ADDRESSING, WHICH


APPLIES TO A MOV BETWEEN A
MEMORY LOCATION & AL , AX Or
EAX.
20/ 9/ 99

CE-6265

L06 OF 40

24 of 25

Assembly language

b) DISPLACEMENT ADDRESSING ,
WHICH APPLIES TO ALMOST ANY
INSTRUCTION IN THE
INSTRUCTION SET.
20/ 9/ 99

CE-6265

L06 OF 40

25 of 25

Assembly language

DIRECT ADDRESSING
* MOV INSTRUCTION TRANSFERS
DATA BETWEEN A MEMORY
LOCATION , LOCATED WITH IN THE
DATA SEGMENT & THE AL(8-BIT),
AX(16-BIT) & EAX(32-BIT).
20/ 9/ 99

CE-6265

L07 OF 40

1 of 28

Assembly language

* 3-BYTE LONG INSTRUCTION.

* IN 80386 & ABOVE, A REGISTER-SIZE


PREFIX MAY APPEAR BEFORE THE
INSTRUCTION , CAUSING IT TO
EXCEED THREE BYTES IN LENGTH.
20/ 9/ 99

CE-6265

L07 OF 40

2 of 28

Assembly language

DISPLACEMENT
ADDRESSING

* ALMOST IDENTICAL TO DIRECT


ADDRESSING MODE.
* THIS IS FOUR BYTE INSTRUCTION
EXCEPT THREE.
20/ 9/ 99

CE-6265

L07 OF 40

3 of 28

Assembly language

* IN 80386 THROUGH PENTIUM, THIS


INSTRUCTION CAN BE UPTO
SEVEN BYTES WIDE.
* MORE FLEXIBLE BECAUSE MOST
INSTRUCTIONS USE IT.
20/ 9/ 99

CE-6265

L07 OF 40

4 of 28

Assembly language

* INSTRUCTION SET DOES NOT


SUPPORT A MEMORY TO MEMORY
TRANSFER EXCEPT MOVS
INSTRUCTION.
20/ 9/ 99

CE-6265

L07 OF 40

5 of 28

Assembly language

EXAMPLE:---* MOV CX, LIST


INSTRUCTION COPIES THE WORDSIZED CONTENTS OF MEMORY
LOCATION LIST INTO REGISTER CX.

20/ 9/ 99

CE-6265

L07 OF 40

6 of 28

Assembly language

EXAMPLE:----* MOV ESI, LIST


INSTRUCTION COPIES A 32-BIT
NUMBER, STORED IN FOUR
CONSECUTIVE BYTES MEMORY,
FROM LOCATION LIST INTO
REGISTER ESI.
20/ 9/ 99

CE-6265

L07 OF 40

7 of 28

Assembly language

REGISTER
* TRANSFER A COPY OF A BYTE Or A
WORD FROM A SOURCE REGISTER
Or A MEMORY LOCATION TO
DESTINATION REGISTER Or
MEMORY LOCATION.
20/ 9/ 99

CE-6265

L07 OF 40

8 of 28

Assembly language

EXAMPLE:---- MOV CX, DX


INSTRUCTION COPIES THE WORDSIZED CONTENTS OF A REGISTER
DX INTO REGISTER CX.
20/ 9/ 99

CE-6265

L07 OF 40

9 of 28

Assembly language

* IN 80386 & ABOVE, A DOUBLE-

WORD CAN ALSO BE TRANSFERRED


FROM THE SOURCE REGISTER Or
MEMORY LOCATION .
20/ 9/ 99

CE-6265

L07 OF 40

10 of 28

Assembly language

EXAMPLE:----- MOV ECX, EDX


INSTRUCTION COPIES THE DOUBLE
WORD-SIZED CONTENTS OF
REGISTER EDX INTO REGISTER
ECX.
20/ 9/ 99

CE-6265

L07 OF 40

11 of 28

Assembly language

* 8-BIT REGISTERS USED IN IT:--AH, AL, BH, BL, CH, CL, DH, DL.
* 16-BIT REGISTERS :---AX, BX, CX, DX, SP, BP, SI, DI.
20/ 9/ 99

CE-6265

L07 OF 40

12 of 28

Assembly language

* 32-BIT REGISTERS (IN 80386) :--EAX, EBX, ECX, EDX, ESP, EBP, EDI
AND ESI.
* SOME MOV,PUSH & POP INSTRUCT-ION S ADDRESS 16-BIT SEGMENT
REGISTERS (CS, ES, DS, SS, FS & GS).
20/ 9/ 99

CE-6265

L07 OF 40

13 of 28

Assembly language

* USE REGISTER INSTRUCTION THAT


ARE THE SAME SIZE FOR
INSTRUCTIONS.

20/ 9/ 99

CE-6265

L07 OF 40

14 of 28

Assembly language

* NEVER MIX AN 8-BIT REGISTER


WITH 16-BIT Or AN 8-BIT WITH
32- BIT Or 16-BIT WITH A 32-BIT
REGISTER.
20/ 9/ 99

CE-6265

L07 OF 40

15 of 28

Assembly language

REGISTER
INDIRECT
* TRANSFER A BYTE Or WORD
BETWEEN A REGISTER & A
MEMORY LOCATION ADDRESSED
BY AN INDEX Or BASE REGISTER.
20/ 9/ 99

CE-6265

L07 OF 40

16 of 28

Assembly language

* INDEX & BASE REGISTERS ARE:--BP, BX, DI AND SI.


* EXAMPLE:---- MOV AX, [BX]
INSTRUCTION COPIES WORD-SIZED
DATA FROM THE DATA SEGMENT
ADDRESS INDEXED BY BX INTO AX.
20/ 9/ 99

CE-6265

L07 OF 40

17 of 28

Assembly language

* IN 80386 AND ABOVE, A BYTE,


WORD Or DOUBLEWORD IS TRANS-FERRED BETWEEN A REGISTER &
MEMORY LOCATION ADDRESSED
BY ANY REGISTER:----EAX, EBX, ECX, EDX, ESI, EBP, EDI.
20/ 9/ 99

CE-6265

L07 OF 40

18 of 28

Assembly language

EXAMPLE :--- MOV AL,[ECX]


* INSTRUCTION LOADS AL FROM
THE DATA SEGMENT OFFSET
ADDRESSED SELECTED BY THE
CONTENTS OF ECX.
20/ 9/ 99

CE-6265

L07 OF 40

19 of 28

Assembly language

* SYMBOL [ ] DENOTE INDIRECT


ADDRESSING IN ASSEMBLY
LANGUAGE.
* 80386 AND ABOVE NOT ONLY
USES BP, BX, DI & SI BUT ALSO
USES OTHER EXTENDED
REGISTERS EXCEPT ESP.
20/ 9/ 99

CE-6265

L07 OF 40

20 of 28

Assembly language

* IN 80386 EBP ADDRESS MEMORY IS


IN THE STACK SEGMENT WHILE
EAX, EBX, ECX, EDX, EDI & ESI

ADDRESS IS IN THE DATA SEGMENT.


20/ 9/ 99

CE-6265

L07 OF 40

21 of 28

Assembly language

REGISTER RELATIVE
* MOVES A BYTE Or WORD BETWEEN
A REGISTER & THE MEMORY
LOCATION ADDRESSED BY AN
INDEX Or BASE REGISTER PLUS A
DISPLACEMENT.
20/ 9/ 99

CE-6265

L07 OF 40

22 of 28

Assembly language

EXAMPLE:----a) MOV AX,[BX+4]


b) MOV AX,ARRAY[BX]

20/ 9/ 99

CE-6265

L07 OF 40

23 of 28

Assembly language

MOV AX,[BX+4]
* INSTRUCTION LOADS AX
FROM THE DATA SEGMENT
ADDRESSED FORMED BY BX
PLUS 4.
20/ 9/ 99

CE-6265

L07 OF 40

24 Of 28

Assembly language

MOV AX,ARRAY[BX]
* INSTRUCTION LOADS AX
FROM THE DATA SEGMENT
MEMORY LOCATION IN
ARRAY PLUS THE CONTENTS
OF BX.
20/ 9/ 99

CE-6265

L07 OF 40

25 of 28

Assembly language

* DATA IN A SEGMENT ARE


ADDRESSED BY ADDING THE
DISPLACEMENT TO THE CONTENTS
OF THE BASE Or INDEX REGISTER
(BP, BX, DI, SI).
20/ 9/ 99

CE-6265

L07 OF 40

26 of 28

Assembly language

* SIMILAR TO BASE-PLUS-INDEX
ADDRESSING AND DISPLACEMENT
ADDRESSING .
* BX, DI Or SI ADDRESS THE DATA
SEGMENT AND BP ADDRESSES
THE STACK SEGMENT
20/ 9/ 99

CE-6265

L07 OF 40

27 of 28

Assembly language
.
* IN 80386 AND ABOVE , DISPLACE-

-MENT CAN BE A 32-BIT NUMBER


& REGISTER CAN BE ANY 32-BIT
REGISTER EXCEPT ESP REGISTER .
20/ 9/ 99

CE-6265

L07 OF 40

28 of 28

Assembly language

RELATIVE - INDEXED
*TRANSFERS THE BYTE OR A WORD
BETWEEN A REGISTER& THE
MEMORY LOCATION ADDRESSED
BY INDEX AND BASE REGISTER
PLUS A DISPLACEMENT.
21/ 9/ 99

CE-6265

L08 OF 40

1 of 18

Assembly language

EXAMPLE:----MOVAX,ARRAY[BX+DI ]
* INSTRUCTION LOADS
BOTH AX FROM A DATA
SEGMENT MEMORY
LOCATION
21/ 9/ 99

CE-6265

L08 OF 40

2 Of 18

Assembly language

* SIMILAR TO THE INDIRECT ADDRE-SSING BECAUSE IT INDIRECTLY


ADDRESSES MEMORY DATA .

* ALL THE MICROPROCESSORS USE


ONE BASE REGISTER (BP Or BX) AND
ONE INDX REGISTER (DI Or SI)
21/ 9/ 99

CE-6265

L08 OF 40

3 of 18

Assembly language

* IN THIS MODE,BASE REGISTER


HOLD BEGINNING ADDRESS OF
MEMORY ARRAY & INDEX REGIS-TER HOLD RELATIVE POSITION OF
ELEMENT
IN CE-6265
ARRAY.L08 OF 40
21/ 9/ 99

4 of 18

Assembly language

*IN THE 80386 Or ABOVE, IT ALLOWS


THE COMBINATION OF OF ANY TWO
32-BIT EXTENDED REGISTER
EXCEPT ESP .
21/ 9/ 99

CE-6265

L08 OF 40

5 of 18

Assembly language

EXAMPLE:----MOV DL, [EAX + EBX]


* INSTRUCTIONIS AN EXAMPLE
USING EAX AS THE BASE PLUS EBX
AS THE INDEX.

21/ 9/ 99

CE-6265

L08 OF 40

6 of 18

Assembly language

BASE-INDEXED
TRANSFERS A BYTE Or WORD
BETWEEN AREGISTER AND MEMORY
LOCATION ADDRESSED BY A BASE
REGISTER PLUS AN INDEX REGISTER
.
*

21/ 9/ 99

CE-6265

L08 OF 40

7 of 18

Assembly language

EXAMPLES:--MOV[BX+DI],CL
* COPIES THE BYTE SIZED CONTENTS
OF REGISTER CL INTO DATA
SEGMENT MEMORY LOCATION
ADDRESSED BY BX PLUS DI.
21/ 9/ 99

CE-6265

L08 OF 40

8 of 18

Assembly language

* SIMILAR TO INDIRECT ADDR-ESSING MODE BECAUSE IT


INDIRECTLY ADDRESSES MEM-ORY DATA.
* ALL MPU USE ONE BASE REG-ISTER (BP OR BX) & ONE INDEX
REGISTER DI OR SI.
21/ 9/ 99

CE-6265

L08 OF 40

9 of 18

Assembly language

* IN 80386 OR ABOVE, THIS TYPE


OF ADDRESSING ALLOWS THE
COMBINATION OF ANY TWO 32
BIT REGISTERS EXCEPT ESP.
21/ 9/ 99

CE-6265

L08 OF 40

10 of 18

Assembly language

BRANCH
ADDRESSES

* INTRA SEGMENT DIRECT


* INTRA SEGMENT INDIRECT
* INTER SEGMENT DIRECT
* INTER SEGMENT INDIRECT
21/ 9/ 99

CE-6265

L08 OF 40

11 of 18

Assembly language

INTRASEGMENT DIRECT
EFFECTIVE BRANCH ADDRESS IS
SUM OF AN 8- OR 16- BIT
DISPLACEMENT & CURRENT
CONTENTS OF IP.
21/ 9/ 99

CE-6265

L08 OF 40

12 of 18

Assembly language

* WHEN DISPLACEMENT IS 8- BIT


LONG, REFERRED TO A SHORT
JUMP.
* USED WITH EITHER CONDITIO-NAL OR UNCONDITIONAL
BRANCHING.
21/ 9/ 99

CE-6265

L08 OF 40

13 of 18

Assembly language

INTRASEGMENT INDIRECT
* EFFECTIVE BRANCH
ADDRESS IS THE CONTENTS
OF A REGISTER OR
MEMORY LOCATION.
21/ 9/ 99

CE-6265

L08 OF 40

14 of 18

Assembly language

* CONTENTS OF IP ARE REPL


-ACED BY EFFECTIVE BRAN-CH ADDRESS.
* USED ONLY IN UNCONDITIO-NAL BRANCH INSTRUCTIONS.

21/ 9/ 99

CE-6265

L08 OF 40

15 of 18

Assembly language

INTERSEGMENT DIRECT
* REPLACES THE CONTENTS
OF IP WITH PART OF
INSTRUCTION & CONTENTS
OF CS WITH ANOTHER PART
OF INSTRUCTION.
21/ 9/ 99

CE-6265

L08 OF 40

16 of 18

Assembly language

* PURPOSE IS TO PROVIDE A
MEANS OF BRANCHING FROM
ONE CODE SEGMENT TO
ANOTHER.
* MUST BE UNCONDITIONAL.
21/ 9/ 99

CE-6265

L08 OF 40

17 of 18

Assembly language

INTERSEGMENT DIRECT
* REPLACES THE CONTENTS
OF IP & CS WITH THE
CONTENTS OF TWO
CONSECTIVE WORDS IN
MEMORY.
CE-6265

Assembly language

MEMORY ADDRESSING
MODES
* USED WITH THE JMP &
CALL INSTRUCTIONS.

21/ 9/ 99

CE-6265

L09 OF 40

1 of 30

Assembly language

* INTRODUCE THE THREE


ADDRESSING FORMS:1) DIRECT
2) RELATIVE
3) INDIRECT
21/ 9/ 99

CE-6265

L09 OF 40

2 of 30

Assembly language

DIRECT MEMORY
ADDRESSING
* USED IN HIGH LEVEL
LANGUAGES LIKE GOTO &
GOSUB INSTRUCTION IN BASK.
21/ 9/ 99

CE-6265

L09 OF 40

3 of 30

* EXAMPLE:- IF PROGRAM JUMPS


TO MEMORY LOCATION 10000H
FOR NEXT INSTRUCTION,ADDRE-ESS 10000H IS STORED FOLLOW-ING THE OPCODE IN MEMORY.
21/ 9/ 99

CE-6265

L09 OF 40

4 of 30

Assembly language

Assembly language

* IT ACCESSES ANY LOCATION


WITHIN FIRST 1M BYTE OF
MEMORY BY CHANGING BOTH
CS & IP.
* INSTRUCTIONS STORE THE
ADDRESS WITH THE OPCODE
21/ 9/ 99

CE-6265

L09 OF 40

6 of 30

Assembly language

RELATIVE MEMORY
ADDRESSING
* RELATIVE MEANS RELATI- -VE TO
THE INSTRUCTION POINTER.
* AVAILABLE IN THE INTEL FAMILY.

21/ 9/ 99

CE-6265

L09 OF 40

7 of 30

Assembly language

* EXAMPLE:- IF A JMP INSTRUC-TION SKIPS NEXT TWO BYTES


OF MEMORY, THE ADDRESS
IN RELATION TO THE INSTRU-CTION POINTER IS 2 THAT
ADDS TO THE INSTRUCTION
POINTER.
21/ 9/ 99

CE-6265

L09 OF 40

8 of 30

Assembly language

* RELATIVE JMP 8 CALL INSTRUC-TION CONTAINS 8- OR 16- BIT


SIGNED DISPLACEMENT.
* AN INTRASEGMENT JUMP IS A
JUMP ANYWHERE WITHIN THE
CURRENT CODE SEGMENT.
21/ 9/ 99

CE-6265

L09 OF 40

9 of 30

Assembly language

INDIRECT MEMORY
ADDRESSING
* ALLOWS SEVERAL FORMS OF
INDIRECT MEMORY ADDRESSING
FOR JMP & CALL INSTRUCTIONS .
21/ 9/ 99

CE-6265

L09 OF 40

10 of 30

Assembly language

* INDIRECT PROGRAM JUMP INSTR-UCTION USE IN 16-BIT REGISTER


(AX, BX, CX, DX, SP, BP, DI Or SI).

21/ 9/ 99

CE-6265

L09 OF 40

11 of 30

Assembly language

* ANY RELATIVE REGISTER ([BP],


[BX], [DI] Or [SI]).
* ANY RELATIVE REGISTER WITH A
DISPLACEMENT.
21/ 9/ 99

CE-6265

L09 OF 40

12 of 30

Assembly language

* IN 80386 AND ABOVE, EXTENDED


REGISTER CAN BE USED TO HOLD
ADDRESS Or INDIRECT ADDRESS
OF A RELATIVE JMP Or CALL.
21/ 9/ 99

CE-6265

L09 OF 40

13 of 30

Assembly language

FOR EXAMPLE :---* THE JUMP EAX INSTRUCTION


JUMPS TO THE LOCATION
ADDRESSED BY REGISTER EAX.
21/ 9/ 99

CE-6265

L09 OF 40

14 of 30

Assembly language

* IF A 16-BIT REGISTER HOLDS THE


ADDRESS OF A JUMP INSTRUCTI-ON, THE JUMP IS NEAR.
* IF A RELATIVE REGISTER HOLDS
THE ADDRESS, THE JUMP IS
CONSIDERED AN INDIRECT JUMP.
21/ 9/ 99

CE-6265

L09 OF 40

15 of 30

Assembly language

FOR EXAMPLE:---* JMP [BX] REFERS TO A MEMORY


LOCATION WITHIN THE DATA
SEGMENT AT THE OFFSET
ADDRESS CONTAINED IN BX.

21/ 9/ 99

CE-6265

L09 OF 40

16 of 30

Assembly language

* OFFSET ADDRESS IS A 16-BIT


NUMBER USED AS OFFSET
ADDRESS IN INTRASEGMENT.THIS
TYPE OF JUMP IS CALLED AN
INDIRECT-INDIRECT Or DOUBLEINDIRECT JUMP.
21/ 9/ 99

CE-6265

L09 OF 40

17 of 30

Assembly language

STACK MEMORYADDRESSING
* PLAY AN IMPRTANT ROLE IN
MICROPROCESSOR.
HOLD DATA TEMPORARILY &
STORES ADDRESSES FOR
PROCEDURES.
21/ 9/ 99

CE-6265

L09 OF 40

18 of 30

Assembly language

* LIFO (last-in, first-out) MEMORY,


WHICH DESCRIBES WAY DATA
ARE STORED & REMOVED FROM
THE STACK.
21/ 9/ 99

CE-6265

L09 OF 40

19 of 30

Assembly language

* DATA PLACED ONTO STACK WITH


A PUSH INSTRUCTION.
* DATA REMOVED ONTO STACK
WITH A POP INSTRUCTION.

21/ 9/ 99

CE-6265

L09 OF 40

20 of 30

Assembly language

* CALL INSTRUCTION USES STACK


TO HOLD THE RETURN ADDRESS
FOR PROCEDURES.

* RET INSTRUCTION REMOVES THE


RETURN ADDRESS FROM THE
STACK.
21/ 9/ 99

CE-6265

L09 OF 40

21 of 30

Assembly language

* STACK MEMORY IS MAINTAINED


BY TWO REGISTERS:--a) THE STACK POINTER (SP Or ESP)

b) THE STACK SEGMENT REGISTER


(SS).
21/ 9/ 99

CE-6265

L09 OF 40

22 of 30

Assembly language

* SP/ESP REGISTER ALWAYS


POINT TO AN AREA OF MEMORY
LOCATED WITHIN THE STACK
SEGMENT.
* IN REAL MODE, SP/ES REGISTER
ADDS TO SS 10H TO FORM THE
STACK MEMORY ADDRESS .
21/ 9/ 99

CE-6265

L09 OF 40

23 of 30

Assembly language

* IN PROTECTED MODE, THE SS


REGISTER HOLDS A SELECTOR
THAT ACCESSES A DESCRIPTOR
FOR THE BASE ADDRESS OF THE
STACK SEGMENT.

21/ 9/ 99

CE-6265

L09 OF 40

24 of 30

Assembly language

* PUSH & POP ALWAYS STORE Or


RETRIEVE WORDS OF DATA
NEVER BYTES

IN THE 8086

THROUGH THE 80286 MICROPRO-CESSOR.


21/ 9/ 99

CE-6265

L09 OF 40

25 of 30

Assembly language

* DATA PUSHED ONTO STACK FROM


ANY 16-BIT REGISTER Or SEGMENT
REGISTER Or IN THE 80386 AND
ABOVE, ANY 32-BIT REGISTER.
21/ 9/ 99

CE-6265

L09 OF 40

26 of 30

Assembly language

* DATA MAY BE POPPED OFF THE


STACK INTO ANY 16-BIT REGISTER
Or ANY SEGMENT REGISTER
EXCEPT CS.
21/ 9/ 99

CE-6265

L09 OF 40

27 of 30

Assembly language

* PUSH A & POP A INSTRUCTIONS


EITHER PUSH Or POP ALL THE

REGISTERS ON THE STACK EXCEPT


THE SEGMENT REGISTERS.
21/ 9/ 99

CE-6265

L09 OF 40

28 of 30

Assembly language

* THE PUSH A AND POP A INSTRU-CTIONS ARE NOT AVAILABLE ON


8086/8088 MICROPROCESSOR.

21/ 9/ 99

CE-6265

L09 OF 40

29 of 30

Assembly language

* PUSH IMMEDIATE INSTRUCTION IS


ALSO NEW TO THE 80286 THROUGH
PENTIUM MICROPROCESSOR.
* 80386 & ABOVE ALSO ALLOW
EXTENDED REGISTERS TO BE
PUSHED Or POPPED.
21/ 9/ 99

CE-6265

L09 OF 40

30 of 30

Assembly language

INTRODUCTION
TO ASSEMBLY
LANGUAGE
21/ 9/ 99

CE-6265

L10 OF 40

1 of 20

Assembly language

ASSEMBLY LANGUAGE
FEATURES
* IT TEACHES THE WAY THE
COMPUTER IS HARDWARE.

21/ 9/ 99

CE-6265

L10 OF 40

2 of 20

Assembly language

* OPERATING SYSTEM

WORKS TOGETHER.
* IT IS MACHINE
DEPENDENT.

21/ 9/ 99

CE-6265

L10 OF 40

3 of 20

Assembly language

ASSEMBLY LANGUAGE
FUNDAMENTALS
* BYTE
* WORD
* DOUBLE WORD
* LABEL DIRECTIVE
21/ 9/ 99

CE-6265

L10 OF 40

4 of 20

BYTE

Assembly language

* IT CREATES STORAGE FOR A


BYTE OR GROUP OF BYTES
* SYNTAX---------[name] DB initial value,[initial
value],
21/ 9/ 99

CE-6265

L10 OF 40

5 of 20

WORD

Assembly language

* IT CREATES STORAGE FOR A


WORD OR LIST OF WORDS.
* SYNTAX:------------[name]DW initial value, [initial value]
.
21/ 9/ 99

CE-6265

L10 OF 40

6 of 20

Assembly language

DOUBLE WORD
* IT CREATES STORAGE FOR A 32-BIT
DOUBLE WORD VARIABLE.

* SYNTAX:---------[name] DD initial value [initial


value]...
21/ 9/ 99

CE-6265

L10 OF 40

7 of 20

Assembly language

ASSEMBLY LANGUAGE
* THIS LANGUAGE UNLOCKS THE
SECRET OF COMPUTERS
HARDWARE &SOFTWARE. IT IS
MACHINE DEPENDENT.
21/ 9/ 99

CE-6265

L10 OF 40

8 of 20

Assembly language

IMPORTANCE OF
ASSEMBLY LANGUAGE
* TO UNDERSTAND THE
COMPUTER ARCHITECHTURE
& OPERATING SYSTEM.
21/ 9/ 99

CE-6265

L10 OF 40

9 of 20

Assembly language

IN TELECOMMUNICATION
PROGRAM FOR IBM-PC.

* IT IS A LEARNING TOOL.

21/ 9/ 99

CE-6265

L10 OF 40

10 of 20

Assembly language

ASSEMBLY LANGUAGE
APPLICATIONS:* TO WRITE LARGE
APPLICATIONS.
21/ 9/ 99

CE-6265

L10 OF 40

11 of 20

Assembly language

* ASSEMBLY LANGUAGE
SUBROUTINES TO HANDLE
OPERATION NOT AVAILABLE
IN HIGH LEVEL LANGUAGE.
21/ 9/ 99

CE-6265

L10 OF 40

12 of 20

Assembly language

MACHINE
INSTRUCTIONS
* A MACHINE INSTRUCTION IS A
BINARY CODE THAT HAS A
SPECIAL MEANING FOR
COMPUTERS CPU TO DO A
TASK.
21/ 9/ 99

CE-6265

L10 OF 40

13 of 20

Assembly language

OPERATION CODE
* THE FIRST BYTE OF 2 BYTE
INSTRUCTION IS CALLED
OPERATION CODE:-- OPCODE.

21/ 9/ 99

CE-6265

L10 OF 40

14 of 20

Assembly language

OPERAND
* THE SECOND BYTE OF 2 BYTE
INSTRUCTION IS CALLED :OPERAND
21/ 9/ 99

CE-6265

L10 OF 40

15 of 20

Assembly language

* AN OPERAND MAY BE A
REGISTER, A MEMORY
VARIABLE OR AN IMMEDIATE
VALUE.
21/ 9/ 99

CE-6265

L10 OF 40

16 of 20

Assembly language

AN INSTRUCTION MAY
CONTAIN ZERO, ONE OR TWO
OPERANDS.

21/ 9/ 99

CE-6265

L10 OF 40

17 of 20

Assembly language

MNEMONIC:* IT IS A SHORT ALPHABETIC


CODE THAT ASSITS THE
MEMORY IN REMEBERING A
CPU INSTRUCTION.
21/ 9/ 99

CE-6265

L10 OF 40

18 of 20

Assembly language

ADDRESSING MODE
IT TELLS THE ASSEMBLER WHERE TO

FIND DATA IN EACH OPERAND;IN


REGISTER, IN MEMORY OR AS
IMMEDIATE DATA.

21/ 9/ 99

CE-6265

L10 OF 40

19 of 20

Assembly language

COMMENTING
AN INSTRUCTION
THE BEGINNING OF COMMENT
IS MARKED BY A SEMICOLON(;)
CHARACTER.
21/ 9/ 99

CE-6265

L10 OF 40

20 of 20

Assembly language

ASSEMBLY LANGUAGE
FUNDAMENTALS

* DATA DEFINITION
DIRECTIVES:BY USING DATA DEFINITION
DIRECTIVES THE VARIABLES
FOR STORAGE DEFINED.
21/ 9/ 99

CE-6265

L11 OF 40

1 of 27

Assembly language

DATA DEFINITION
DIRECTIVE TABLE:DIRECTIVE

DESCRIPTION

NUMBER OF
BYTES

ATTRIBUTE

DB

DEFINE BYTE

BYTE

DW

DEFINE WORD

WORD

DOUBLE
WORD

DD

DEFINE DOUBLE WORD


21/ 9/ 99

CE-6265

L11 OF 40

2 of 27

Assembly language

DATA DEFINITION
DIRECTIVE TABLE:DIREC- DESCRIPTION
TIVE
DQ
DT

DEFINEQUADWORD
DEFINE TEN
BYTES

21/ 9/ 99

CE-6265

NO. OF
BYTES

ATTRIBUTE

QUAD
WORD

10

TEN
BYTES

L11 OF 40

3 of 27

Assembly language

DATA DEFINITION
DIRECTIVES
* ATTRIBUTE:- IT REFERS TO
THE BASIC UNIT OF STORAGE
WHEN THE VARIABLE WAS
DEFINED.
21/ 9/ 99

CE-6265

L11 OF 40

4 of 27

Assembly language

DEFINE BYTE (DB)


* DB DIRECTIVE CREATS
STORAGE FOR A BYTE OR
GROUP OF BYTES , & OPTIO-NALLY ASSIGNS STARTING
VALUES.
21/ 9/ 99

CE-6265

L11 OF 40

5 of 27

Assembly language

SYNTAX FOR DEFINE


WORD:* [NAME] D B INTIAL VALUE,

[INITIAL VALUE],...
* EXAMPLE: NUMBER dB 20 b ,10h,
43h,2
21/ 9/ 99

CE-6265

L11 OF 40

6 of 27

Assembly language

DEFINE WORD (DW)


* THIS DIRECTIVE CREATES
STORAGE FOR A WORD OR A
LIST OF WORDS &
OPTIONALLY GIVES THEM
STARTING VALUES.
21/ 9/ 99

CE-6265

L10 OF 40

7 of 27

Assembly language

SYNTAX FOR DEFINE


WORD:* [NAME] D W INITIAL
VALUE, [INITIAL VALUE]
*

EXAMPLE:- c d
21/ 9/ 99

CE-6265

L10 OF 40

8 of 27

Assembly language

DEFINE DOUBLE
WORD (DD)
* THIS DIRECTIVE CREATES
STORAGE FOR 32 BIT DOUBLE
WORD VARIABLE, WITH OPTION
OF GIVING IT A STARTING
VALUE.
21/ 9/ 99

CE-6265

L11 OF 40

9 of 27

Assembly language

SYNTAX FOR DEFINE


DOUBLE WORD
* [NAME] DD INITIAL
VALUE [INITIAL VALUE].
*

EXAMPLE:-01234567h
21/ 9/ 99

CE-6265

L11 OF 40

10 of 27

Assembly language

LABLE DIRECTIVE
* THIS DIRECTIVE ASSIGNS A
SPECIFIC ATTRIBUTE TO A
LABEL, IF LABEL IS USED IN
CODE SEGMENT .
21/ 9/ 99

CE-6265

L11 OF 40

11 of 27

Assembly language

SYNTAX FOR LABEL


DIRECTIVE
*

name LABEL distance

21/ 9/ 99

CE-6265

L11 OF 40

12 of 27

Assembly language

PROGRAM STRUCTURE

dos segment
model
small
;set up segment order
Stack
100th
;small memory model
code
;set stack size
main
proc
MOV AX, BX ; code(instructions)
21/ 9/ 99

CE-6265

L11 OF 40

13 of 27

Assembly language

PROGRAM STRUCTURE

.
.
.

main
data
count

21/ 9/ 99

endp
db 10

CE-6265

;data(variables)

L11 OF 40

14 of 27

Assembly language

PROGRAM STRUCTURE

End

.
.
.
main

21/ 9/ 99

CE-6265

;end of assembly
L11 OF 40

15 of 27

Assembly language

DOSSEG
* THE DOSSEG DIRECTIVE
TELLS MASM TO PLACE THE
PROGRAM SEGMENTS IN A
STANDARD ORDER USED BY
MICROSOFT HIGH LEVEL
LANGUAGE.
21/ 9/ 99

CE-6265

L11 OF 40

16 of 27

Assembly language

MODEL DIRECTIVE
* THE MODEL DIRECTIVE
SELECTS A STANDARD
MEMORY MODEL FOR
PROGRAM.
21/ 9/ 99

CE-6265

L11 OF 40

17 of 27

Assembly language

MODEL DIRECTIVE

MODEL
TINY

21/ 9/ 99

DESCRIPTION
CODE & DATA TOGETHER MAY NOT
BE GREATER THAN
64 K.
CE-6265

L11 OF 40

18 of 27

Assembly language

MODEL DIRECTIVE
MODEL

DESCRIPTION

SMALL

NEITHER CODE
NOR DATA MAY
BE GREATER
THAN 64 K.

21/ 9/ 99

CE-6265

L11 OF 40

19 of 27

Assembly language

MODEL DIRECTIVE

MODEL

DESCRIPTION

MEDIUM

ONLY CODEMAY
BE GREATER
THAN 64 K.

21/ 9/ 99

CE-6265

L11 OF 40

20 of 27

Assembly language

MODEL DIRECTIVE

MODEL
COMPACT

21/ 9/ 99

DISCTRIPTION
ONLY DATA
MAY BE GREATER THAN 64K.

CE-6265

L11 OF 40

21 of 27

Assembly language

MODEL DIRECTIVE
MODLE
LARGE

21/ 9/ 99

DESCRIPTION
BOTH CODE &
DATA MAY BE
GREATER THAN
64 K.
CE-6265

L11 OF 40

22 of 27

Assembly language

MODEL DIRECTIVE
MODEL
HUGE

21/ 9/ 99

DESCRIPTION
ALL AVAILABLE
MEMORY BE USED
FOR CODE & DATA
CE-6265

L11 OF 40

23 of 27

Assembly language

PROGRAM SEGMENTS
* THREE SEGMENT DIRECTIVES
ARE USED:-

* STACK
* CODE
* DATA
21/ 9/ 99

CE-6265

L11 OF 40

24 of 27

Assembly language

PROGRAM SEGMENTS
* STACK:- THIS DIRECTIVE
SETS ASIDE STACK SPACE FOR
USE BY THE PROGRAM.

21/ 9/ 99

CE-6265

L11 OF 40

25 of 27

Assembly language

PROGRAM SEGMENTS
* CODE:- THIS DIRECTIVE
IDENTIFIES THE START OF
CODE IN A PROGRAM.

21/ 9/ 99

CE-6265

L11 OF 40

26 of 27

Assembly language

PROGRAM SEGMENTS
*

DATA:- THIS DIRECTIVE


IDENTIFES THE START OF
DATA SEGMENT, WHERE
VARIABLES ARE DECLARED.

21/ 9/ 99

CE-6265

L11 OF 40

27 of 27

Assembly language

PROCEDURES
* GROUP OF RELATED
PROGRAM INSTRUCTION
WITH A COMMON FUNCTION.
NAME THAT IDENTIFIES ITS
STARTING LOCATION .
21/ 9/ 99

CE-6265

L12 OF 40

1 of 24

Assembly language

* OFTEN CALLED AS ROUTINES


OR SUBROUTINES .
* ONE PROCEDURE INVOLVED IN
EVERY PROGRAM.
21/ 9/ 99

CE-6265

L12 OF 40

2 of 24

Assembly language

* PROC DIRECTIVE SHOWS THE


BEGINNING OF PROCEDURE.
* ENDP DIRECTIVE SHOWS THE
END OF PROCEDURE.
21/ 9/ 99

CE-6265

L12 OF 40

3 of 24

Assembly
PROCEDURE :- DATA
DIRECTIVE
.CODE
MAIN PROC
:
:
MAIN ENDP
SUB 1 PROC

language

:
.

21/ 9/ 99

CE-6265

L12 OF 40

4 of 24

Assembly language

SUB 1 ENDP.
:
SUB 2 PROC
:
SUB 2 ENDP
21/ 9/ 99

CE-6265

L12 OF 40

5 of 24

Assembly language

THE END DIRECTIVE


MARKS THE LAST LINE IN
A
SOURCE PROGRAM TO
BE ASSEMBLED.

21/ 9/ 99

CE-6265

L12 OF 40

6 of 24

Assembly language

* ACCOMPLAINED BY A LABEL
THAT IDENTIFIES THE ENTRY
POINT, OR START, OF
PROGRAM EXECUTION .
* LINES OF TEXT PLACED AFTER
THE END DIRECTIVE IS IGNORED.
21/ 9/ 99

CE-6265

L12 OF 40

7 of 24

Assembly language

ASSEMBLER DIRECTIVE
* CODE:- MARK THE BEGINING
OF THE CODE SEGMENT.
* DATA:- MARK THE BEGINNING
OF THE DATA SEGMENT.
21/ 9/ 99

CE-6265

L12 OF 40

8 of 24

Assembly language

DOSSEG:-

USE STANDERDED
SEGMENT ORDERING.

END:-

END OF PROGRAM
ASSEMBLY.

ENDP:21/ 9/ 99

END OF PROCEDURES.
CE-6265

L12 OF 40

9 of 24

Assembly language

PAGE DIRECTIVE
* USE TO BEGIN A NEW PAGE
IN PROGRAM LISTING OR
TO SELECT THE NUMBER
LINES PER PAGE & LENGTH
OF EACH LINE.
21/ 9/ 99

CE-6265

L12 OF 40

10 of 24

Assembly language

EXAMPLE:PAGE, 32
TITLE EXCHANGE 2
VARIABLES (EXCH.ASM)
DOSSEG
.MODEL SMALL
.STACK 100h
21/ 9/ 99

CE-6265

L12 OF 40

11 of 24

.CODE

Assembly language

MAIN PROC
mov ax, @data
mov ds,ax
SWAP:
mov al,va11
21/ 9/ 99

CE-6265

L12 OF 40

12 of 24

Assembly language

xchg va12,a1
mov value,a1
mov ax,4000h

int 21h
MAIN ENDP
data
va11 db 10h
va12 db 20h
END MAIN
21/ 9/ 99

CE-6265

L12 OF 40

13 of 24

Assembly language

TITLE DIRECTIVE
* DENTIFIES THE PROGRAM
LISTING TITLE.
* TEXT TYPE TO RIGHT OF IT IS
PRINTED AT THE TOP OF
EACH PAGE IN THE LISTING
FILE.
21/ 9/ 99

CE-6265

L12 OF 40

14 of 24

Assembly language

DOSSEG DIRECTIVE
* TELLS MASM TO PLACE

THE SEGMENTS IN
STANDARD ORDER .
21/ 9/ 99

CE-6265

L12 OF 40

15 of 24

Assembly language

* PLACE SEGMENTS IN ANY


ORDER IN A SOURCE
PROGRAM.

21/ 9/ 99

CE-6265

L12 OF 40

16 of 24

Assembly language

.MODEL DIRECTIVE
* MOST EFFICIENT MODEL
THAT MAY BE DEBUGGED
EASILY USING CODE VIEW.

21/ 9/ 99

CE-6265

L12 OF 40

17 of 24

Assembly language

.STACK DIRCTIVE
* SETS THE SIZE OF PROGRAM
STACK, WHICH MAY BE ANY
SIZE UP TO 64K.
* STACK SEGMENT ADDRESSED
BY SS & SP REGISTER.
21/ 9/ 99

CE-6265

L12 OF 40

18 of 24

Assembly language

.CODE DIRECTIVE
* IDENTIFIES THE PART OF
THAT CONTAIN INSTRUCTIONS.
* ADDRESSED BY THE CS & IP
REGISTERS.
21/ 9/ 99

CE-6265

L12 OF 40

19 of 24

Assembly language

PROC DIRECTIVE
* CREATES A NAME & ADDRESS
FOR THE BEGINNING OF
PROCEDURE.
21/ 9/ 99

CE-6265

L12 OF 40

20 of 24

Assembly language

ENDP DIRECTIVE
* MARKS END OF PROCEDURE.
* ITS NAME MUST BE MATCH
THE NAME USED BY PROC
DIRECTIVE.
21/ 9/ 99

CE-6265

L12 OF 40

21 of 24

Assembly language

DATA DIRECTIVE
* VARIABLES DEFINED IN THE
AREA FOLLWING THE .DATA
DIRECTIVE, CALLED THE
DATA SEGMENT.
21/ 9/ 99

CE-6265

L12 OF 40

22 of 24

Assembly language

END DIRECTIVE
* TERMINATES THE ASSEMBLY
OF THE PROGRAM & ANY
STATEMENT AFTER IT
ARE IGNORED.
21/ 9/ 99

CE-6265

L12 OF 40

23 of 24

Assembly language

SYNTAX OF END
DIRECTIVE:-

END [entry point]


* ENTRY POINT TELLS ASSEMBLER
& LINKER WHERE THE
PROGRAM BEGINES EXECUTION.
21/ 9/ 99

CE-6265 L12 OF 40

24 of 24

Assembly language

PROGRAM INSTRUCTIONS:*
TWO INSTRUCTIONS TO
INITIALISE THE DS REGISTER.
MOV ax, @ data
MOV ds , ax

22/ 9/ 99

CE-6265

L13 OF 40

1 of 21

Assembly language

@:- STANDERED IN MASM


IDENTIFIERS. STANDS FOR THE
LOCATION OF DATA SEGMENT.

22/ 9/ 99

CE-6265

L13 OF 40

2 of 21

Assembly language

LABEL DIRECTIVE
* IT ASSIGNS A SPECIFIC
ATTRIBUTE e.g. BYTE TO LABEL.
* SYNTAX :--------

name LABEL distance


22/ 9/ 99

CE-6265

L13 OF 40

3 of 21

Assembly language

TYPES OF INSTRUCTION
*1 BYTE INSTRUCTION
* 2 BYTE INSTRUCTION
* 3 BYTE INSTRUCTION
22/ 9/ 99

CE-6265

L13 OF 40

4 of 21

Assembly language

INSTRUCTION SET

22/ 9/ 99

CE-6265

L13 OF 40

5 of 21

Assembly language

INSTRUCTION SET
* DATA TRANSFER
* ARITHMETIC
* BIT MANIPULATION
22/ 9/ 99

CE-6265

L13 OF 40

6 of 21

Assembly language

* STRING
* CONTROL TRANSFER
* PROCESSOR CONTROL

22/ 9/ 99

CE-6265

L13 OF 40

7 of 21

Assembly language

DATA TRASFER
* MOV MEM / REG 1
* REGISTER TO REGISTER
* REGESTER TO MEMORY
22/ 9/ 99

CE-6265 L13 OF 40

8 of 21

Assembly language

MOV reg, data


* LOAD IMMEDIATE
DATA INTO REGISTER
* FOUR (4) CLOCK CYCLES
* NO FLAGS AFFECTED
22/ 9/ 99

CE-6265

L13 OF 40

9 of 21

Assembly language

MOV MEM/reg,data
* MOVE IMMEDIATE DATA TO
REGISTER OR MEMORY

22/ 9/ 99

CE-6265

L13 OF 40

10 of 21

Assembly language

* INVOLVES (10+EA) CLOCK


CYCLES
* NO FLAGS AFFECTED

22/ 9/ 99

CE-6265

L13 OF 40

11 of 21

Assembly language

MOV AC,mem
* LOAD THE ACCUMULATOR
FROM MEMORY
* TAKES 10 CLOCK CYCLES
* NO FLAGS AFFECTED

22/ 9/ 99

CE-6265

L13 OF 40

12 of 21

Assembly language

MOVS REG,mem/reg
* MOVE MEMORY OR REGISTER
DATA TO A SEGMENT
REGISTER
* TAKES 2 CLOCK CYCLES
* NO FLAGS AFFECTED
22/ 9/ 99

CE-6265

L13 OF 40

13 of 21

Assembly language

MOVmem/reg,seg reg
*MOV SEGMENT REGISTER
CONTENTS TO REGISTER
OR MEMORY

22/ 9/ 99

CE-6265 L13 OF 40

14 of 21

Assembly language

* TAKES TWO CLOCK


CYCLES
* NO FLAGS AFFECTED

22/ 9/ 99

CE-6265

L13 OF 40

15 of 21

Assembly language

PUSH mem / reg


* SAVE REGISTER OR MEMORY
CONTENTS ON THE TOP OF
STACK
* TAKES (16+EA) CYCLES
* NO FLAGS AFFECTED
22/ 9/ 99

CE-6265

L13 OF 40

16 of 21

Assembly language

PUSH reg

* WRITE 16 BIT REGISTER


CONTENTS ON THE TOP OF
STACK
* TAKES 11 CLOCK CYCLES
* NO FLAGS AFFECTED
22/ 9/ 99

CE-6265

L13 OF 40

17 of 21

Assembly language

POP mem/reg

* RETRIEVE A WORD FROM THE


TOP OF STACK
* TAKES (17+EA) CLOCK
CYCLES
* NO FLAGS AFFECTED
22/ 9/ 99

CE-6265

L13 OF 40

18 of 21

Assembly language

POP reg
* RETRIEVE 16-BIT CONTENTS
FROM TOP OF STACK
* 8 CLOCK CYCLES
* NO FLAGS AFFECTED

22/ 9/ 99

CE-6265

L13 OF 40

19 of 21

Assembly language

POP seg reg


* RETRIEVE THE TOP OF
STACK CONTENTS TO THE
SEGMENT REGISTER

22/ 9/ 99

MP 503

L13 OF 40

20 of 21

Assembly language

* TAKES 8 CLOCK CYCLES


* INCLUDES POPF,LAHF,SAHF &
XCHG reg

22/ 9/ 99

CE-6265

L13 OF 40

21 of 21

Assembly language

ARITHMETIC
* ADD ac,data
* ADD IMMEDIATE DATA
TO AX OR AL REGISTER
* TAKES 4 CLOCK CYCLES
* SIX FLAGS AFFECTED
22/ 9/ 99

CE-6265

L14 OF 40

1 of 21

Assembly language

ADD mem/reg,data
* ADD IMMEDIATE 8-OR 16-BIT
DATA TO REGISTER
* TAKES 4 CLOCK CYCLES
* SIX FLAGS AFFECTED

22/ 9/ 99

CE-6265

L14 OF 40

2 of 21

Assembly language

ADD mem/reg1
* REGISTER TO REGISTER
* TAKES 3 CLOCK CYCLES
* MEMORY TO REGISTER
* REGISTER TO MEMORY
* SIX FLAGS AFFECTED
22/ 9/ 99

CE-6265

L14 OF 40

3 of 21

Assembly language

ADC ac, data

*ADD IMMEDIATE DATA WITH


CARRY TO AX OR AL REGISTER
* TAKES 4 CLOCK CYCLES
* SIX FLAGS AFFECTED

22/ 9/ 99

CE-6265

L14 OF 40

4 of 21

Assembly language

ADC mem/reg,data
* ADD IMMEDIATE 8-OR 16-BIT
DATA WITH CARRY TO
REGISTER OR MEMORY
* TAKES 4 CLOCK CYCLES
* SIX FLAGS AFFECTED
22/ 9/ 99

CE-6265

L14 OF 40

5 of 21

Assembly language

ADC mem/reg 2
* REGISTER TO REGISTER
* MEMORY TO REGISTER
* REGISTER TO MEMORY
* TAKES (16+EA) CLOCK
CYCLES
22/ 9/ 99

CE-6265

L14 OF 40

6 of 21

Assembly language

SUB ac,data
* SUBTRACT IMMEDIATE
DATA FROM AL OR AX
REGISTER
* SIX FLAGS AFFECTED
22/ 9/ 99

CE-6265

L14 OF 40

7 of 21

Assembly language

SUB mem/reg,data
* SUBTRACT IMMEDIATE
DATA FROM REGISTER
OR MEMORY LOCATION
* SIX FLAGS AFFECTED
22/ 9/ 99

CE-6265

L14 OF 40

8 of 21

Assembly language

SUB mem/reg1
* REGISTER FROM REGISTER
* REGISTER FROM MEMORY
* SIX FLAGS AFFECTED
22/ 9/ 99

MP 503

L14 OF 40

9 of 21

Assembly language

CMP ac, data


* COMPARE 8-BIT OR 16BIT IMMEDIATE DATA
WITH ACCUMULATOR.
22/ 9/ 99

MP 503

L14 OF 40

10 of 21

Assembly language

* TAKES 4 CLOCK CYCLES.


* SEVEN FLAGS AFFECTED.

22/ 9/ 99

MP 503

L14 OF 40

11 of 21

Assembly language

INC reg
* INCREMENT REGISTER
CONTENTS BY 1
* TAKES 2 CLOCK CYCLES
* O,S,Z,AC,P FLAGS
AFFECTED
22/ 9/ 99

MP 503

L14 OF 40

12 of 21

Assembly language

DEC reg
* DECREMENT 16-BIT
REGISTER CONTENTS BY 1.
* O , S, Z, AC & P FLAGS
AFFECTED.
22/ 9/ 99

MP 503

L14 OF 40

13 of 21

Assembly language

PUSH SEG reg


* PUSH SEGMENT REGISTER
CONTENTS ONTO STACK
* TAKES 11 CLOCK CYCLES
* NO FLAGS AFFECTED
22/ 9/ 99

MP 503

L14 OF 40

14 of 21

PUSHF

Assembly language

* PUSH THE FLAG


REGISTER CONTENTS TO
THE TOP OF STACK
* TAKES 10 CLOCK CYCLES
* NO FLAGS AFFECTED
22/ 9/ 99

MP 503

L14 OF 40

15 of 21

Assembly language

NEG mem/reg
* NEGATE THE CONTENTS
OF A REGISTER OR
MEMORY LOCATION.
22/ 9/ 99

MP 503

L14 OF 40

16 of 21

Assembly language

* TAKES 3 CLOCK CYCLES


* O , S , Z , AC , P & C FLAGS ARE
AFFECTED

22/ 9/ 99

MP 503

L14 OF 40

17 of 21

DAA

Assembly language

* IT CONVERT BINARY RESULT


OF ADD OR ADC INSTRUCTION
* TAKES 4 CLOCK CYCLES
* S,Z,AC, P & C FLAGS AFFECTED
22/ 9/ 99

MP 503

L14 OF 40

18 of 21

Assembly language

DAS
* IT CONVERTS BINARY RESULT
OF A SUB OR SSB INSTRUCTION
* TAKES 4 CLOCK CYCLES
* S ,Z, AC ,P & C FLAGS AFFECTED
22/ 9/ 99

MP 503

L14 OF 40

19 of 21

Assembly language

AAA
* IT ADJUSTS BINARY RESULT OF
ADD OR ADC INSTRUCTION
* TAKES 4 CLOCK CYCLES
* O, S, Z & P FLAGS AFFECTED
22/ 9/ 99

MP 503

L14 OF 40

20 of 21

Assembly language

AAS
* IT ADJUSTS BINARY
RESULT OF A SUB OF SSB
INSTRUCTION
* TAKES 4 CLOCK CYCLES
22/ 9/ 99

MP 503

L14 OF 40

21 of 21

Assembly language

BIT MANIPULATION
* LOGICAL INSTRUCTION
* SHIFT INSTRUCTION
* ROTATE INSTRUCTION
22/ 9/ 99

MP 503

L15 OF 40

1 of 23

Assembly language

LOGICAL INSTRUCTION
* AND ac ,data
* AN IMMEDIATE DATA WITH
AL OR AX REGISTER
* TAKES 4 CLOCK CYCLES
22/ 9/ 99

MP 503

L15 OF 40

2 of 23

Assembly language

AND mem/reg,data
* AND IMMEDIATE DATA WITH
REGISTER OR MEMORY
LOCATION
* TAKES 4 CLOCK CYCLES
* O, S, Z, & P FLAGS AFFECTED
22/ 9/ 99

MP 503

L15 OF 40

3 of 23

Assembly language

OR ac, data
* OR IMMEDIATE DATA WITH
THE AL OR AX REGISTER
* S, Z, & P FLAGS AFFECTED

22/ 9/ 99

MP 503

L15 OF 40

4 of 23

Assembly language

XOR ac, data


* XOR IMMEDIATE DATA
WITH AL OR AX
REGISTER
* AC FLAGS AFFECTED
22/ 9/ 99

MP 503

L15 OF 40

5 of 23

Assembly language

TEST ac, data


* AND IMMEDIATE DATA
WITH AL OR AX REGISTER
* AC FLAGS AFFECTED

22/ 9/ 99

MP 503

L15 OF 40

6 of 23

Assembly language

NOT mem/reg
* COMPLEMENT REGISTER
OR MEMORY LOCATION
* TAKES 3 CLOCK CYCLES
* NO FLAGS AFFECTED
22/ 9/ 99

MP 503

L15 OF 40

7 of 23

Assembly language

ROTATE INSTRUCTION
* ROTATE REGISTER OR MEMORY
LOCATION CONTENTS LEFT BY
NO. OF BITS.

22/ 9/ 99

MP 503

L15 OF 40

8 of 23

Assembly language

* ROL mem/reg, count


* O & C FLAGS AFFECTED

22/ 9/ 99

MP 503

L15 OF 40

9 of 23

Assembly language

ROR mem/reg count


* ROTATE REGISTER OR
MEMORY LOCATION
CONTENTS RIGHT BY
NUMBER OF BITS
*O AND C FLAGS AFFECTED
22/ 9/ 99

MP 503

L15 OF 40

10 of 23

Assembly language

RCL mem/reg,count
*ROTATE REGISTER OR MEMORY
LOCATION CONTENTS LEFT
THROUGH CARRY BY NUMBER OF
BITS
22/ 9/ 99

MP 503

L15 OF 40

11 of 23

Assembly language

RCR mem/reg,count
* ROTATE REGISTER OR
MEMORY LOCATION CONTENTS
RIGHT THROUGH CARRY BY
NUMBER OF BITS
22/ 9/ 99

MP 503

L15 OF 40

12 of 23

Assembly language

STRING
INSTRUCTION

* REPEAT, REPEAT WHILE


EQUAL, REPEAT WHILE
ZERO, REPEAT WHILE NOT
EQUAL
22/ 9/ 99

MP 503

L15 OF 40

13 of 23

Assembly language

* REP/REPE/REPZ/REPNE
* TAKES 2 CLOCK CYCLES

22/ 9/ 99

MP 503

L15 OF 40

14 of 23

Assembly language

MOVE STRING
* IT TRANSFERS A BYTE OR
WORD FROM SOURCE
STRING ADDRESSED BY SI
* TAKES 18 CLOCK CYCLES

22/ 9/ 99

MP 503

L15 OF 40

15 of 23

Assembly language

CMPS
DESTINATION

* IT SUBTRACTS THE
DESTINATION BYTE OR WORD
ADDRESSED BY DI
FROM SOURCE BYTE OR
WORD ADDRESSED BY SI
* TAKES 22 CLOCK CYCLES
22/ 9/ 99

MP 503

L15 OF 40

16 of 23

Assembly language

SCAS DESTINATION
* IT SUBTRACTS THE
DESTINATION STRING
ELEMENT BY DI FROM
CONTENTS OF AL OR AX
* TAKES 15 CLOCK CYCLES
22/ 9/ 99

MP 503

L15 OF 40

17 of 23

Assembly language

STOS DESTINATIONSTRING
* IT TRANSFERS BYTE OR WORD
FROM REGISTER AL OR AX TO
STRING ADDRESSED BY DI
REGISTER
* TAKES 11 CLOCK CYCLES
22/ 9/ 99

MP 503

L15 OF 40

18 of 23

Assembly language

LODS source-string
* IT TRANSFERS A BYTE OR
WORD STRING ADDRESSED
BY SI TO AL OR AX
REGISTER
* TAKES 12 CLOCK CYCLES
22/ 9/ 99

MP 503

L15 OF 40

19 of 23

Assembly language

CONTROL TRANSFER
* CALL disp-16
*CALL THE SUBROUTINE OR
PROCEDURE SPECIFIED IN
THE OPERAND
* TAKES 19 CLOCK CYCLES
22/ 9/ 99

MP 503

L15 OF 40

20 of 23

Assembly language

CALL mem/reg

* MOVE THE CONTENTS OF THE


REGISTER OR MEMORY
LOCATION TO PC REGISTER
* REGISTER---- 16 CYCLES
* MEMORY----- (21+EA) CYCLES
22/ 9/ 99

MP 503

L15 OF 40

21 of 23

Assembly language

RET
* RETURN FROM THE
INTRASEGMENT
SUBROUTINE
* TAKES 16 CLOCK CYCLES

22/ 9/ 99

MP 503

L15 OF 40

22 of 23

Assembly language

RET disp-16
* RETURN FROM INTRASEGMENT
SUBROUTINE & ADD 16-BIT
DISPLACEMENT TO
STACK POINTER
* TAKES 20 CLOCK CYCLES
22/ 9/ 99

MP 503

L15 OF 40

23 of 23

Assembly language

JMP disp-16
* ADD THE CONTENTS OF 16BIT DISPLACEMENT TO THE
PC CONTENTS
* IT IS AN INTRASEGMENT
UNCONDITIONAL JUMP
INSTRUCTION
22/ 9/ 99

MP 503

L16 OF 40

1 of 27

Assembly language

JMP disp-8
* ADD THE SIGNED 8-BIT
DISPLACEMENT TO THE PC
CONTENTS
* TAKES 15 CLOCK CYCLES
* IT IS 2-BYTE INSTRUCTION
22/ 9/ 99

MP 503

L16 OF 40

2 of 27

Assembly language

JMP mem/reg
* JUMP TO INSTRUCTION
SPECIFIED BY OPERAND INTO PC
REGISTER
* REGISTER-----11 CYCLES
* MEMORY-----(16+EA) CYCLES
22/ 9/ 99

MP 503

L16 OF 40

3 of 27

Assembly language

CALL addr
* THE CPU DECREMENTS THE
SP BY 2 & PUSHES CS
REGISTER CONTENTS ON TOP
OF STACK
* TAKES 28 CLOCK CYCLES
22/ 9/ 99

MP 503

L16 OF 40

4 of 27

Assembly language

CALL mem
* STORE THE CONTENTS OF CS &
PC REGISTER ON TOP OF THE
STACK
* TAKES (37+EA) CLOCK CYCLES
* OBJECT CODE 2 TO 4 BYTES
LONG
22/ 9/ 99

MP 503

L16 OF 40

5 of 27

Assembly language

RET
* IT IS A RETURN INSTRUCTION
* INSTRUCTION POPS TWO BYTES
FROM TOP OF STACK INTO
PROGRAM COUNTER

22/ 9/ 99

MP 503

L16 OF 40

6 of 27

Assembly language

RET disp-16
* THIS INSTRUCTION POPS TWO
STACK BYTES INTO CS
REGISTER
* RETURN FROM SUBROUTINE &
ADD TO STACK POINTER
* TAKES 23 CLOCK CYCLES
22/ 9/ 99

MP 503

L16 OF 40

7 of 27

Assembly language

JMP addr
* JUMP TO INSTRUCTION
IDENTIFIED IN THE OPERAND
* TAKES 15 CLOCK CYCLES
* IT IS A 5 BYTE INSTRUCTION

22/ 9/ 99

MP 503

L16 OF 40

8 of 27

Assembly language

JMP mem
* MOVE THE WORD AT THE
SPECIFIED MEMORY LOCATION
INTO PC REGISTER
* TAKES (24+EA) CLOCK CYCLES
22/ 9/ 99

MP 503

L16 OF 40

9 of 27

Assembly language

LOOP disp-8
* IT DECREMENTS CX
REGISTER BY 1 EACH TIME
IT IS EXECUTED
* CX # 0---17 CLOCK CYCLES
* CX=0---- 5 CLOCK CYCLES
22/ 9/ 99

MP 503

L16 OF 40

10 of 27

Assembly language

LOOPE / LOOPZ
* CX REGISTER DECREMENT BY 1
* LOOP WHILE EQUAL OR LOOP
WHILE ZERO
* JUMP PERFORM--18 CYCLE
* JUMP NOT ----6 CYCLES
22/ 9/ 99

MP 503

L16 OF 40

11 of 27

Assembly language

JCXZ disp-8
* IT IS USEFUL AT BEGINING
OF LOOP OR SUBPROGRAM
TO PASS IT IF CX=0
22/ 9/ 99

MP 503

L16 OF 40

12 of 27

Assembly language

INT
* IT IS USED AS THE BREAK
POINT INTERRUPT
* TAKES 52 CLOCK CYCLES
* OBJECT CODE IS CC
22/ 9/ 99

MP 503

L16 OF 40

13 of 27

Assembly language

INT nn
* IT IS USED TO PROVIDE INTER-RUPT SERVICE PROCEDURES
FOR HARDWARE INTERRUPTS
* TAKES 51 CLOCK CYCLES
* IT IS SOFTWARE INTERRUPT OF
TYPE nn
22/ 9/ 99

MP 503

L16 OF 40

14 of 27

Assembly language

IRET
* IT IS A LAST INSTRUCTION IN
ANY INTERRUPT PROCEDURE
* TAKES 24 CLOCK CYCLES
* IT IS AN INTERRUPT RETURN
22/ 9/ 99

MP 503

L16 OF 40

15 of 27

Assembly language

INTO interrupt on
overflow
* IT GENERATES SOFTWARE
INTERRUPT IF OF = 1
* TAKES 53 CLOCK CYCLES
* OBJECT CODE IS CE
22/ 9/ 99

MP 503

L16 OF 40

16 of 27

Assembly language

* IT IS A TYPE OF 4 SOFTWARE
INTERRUPT
* THE OBJECT CODE IS CE

22/ 9/ 99

MP 503

L16 OF 40

17 of 27

Assembly language

PROCESSOR
CONTROL
* CLC----- CLEAR THE CF
FLAG
* OBJECT CODE IS F8
* TAKES 2 CLOCK CYCLES
22/ 9/ 99

MP 503

L16 OF 40

18 of 27

Assembly language

CMC
* COMPLEMENT THE CF
FLAG
* OBJECT CODE IS F5
* TAKES 2 CLOCK CYCLES
22/ 9/ 99

MP 503

L16 OF 40

19 of 27

Assembly language

STC
* SET THE CF FLAG
* OBJECT CODE IS F9
* TAKES 2 CLOCK CYCLES

22/ 9/ 99

MP 503

L16 OF 40

20 of 27

Assembly language

CLD
*CLEAR THE DF FLAG
* OBJECT CODE IS FC
* TAKES 2 CLOCK CYCLES

22/ 9/ 99

MP 503

L16 OF 40

2 1 of 27

STD

Assembly language

* SET THE DF FLAG


* OBJECT CODE IS FD
* TAKES 2 CLOCK CYCLES
* CAUSES STRING OPERATION TO
AUTO-DECREMENT OPERAND
REGISTER
22/ 9/ 99

MP 503

L16 OF 40

22 of 27

CLI

Assembly language

* CLEAR THE IF FLAG


* IT DISABLES THE INTERRUPT
ON THE INTR TERMINAL
* TAKES 2 CLOCK CYCLES
* OBJECT CODE IS FA
22/ 9/ 99

MP 503

L16 OF 40

23 of 27

Assembly language

STI
* SET THE IF FLAG
* IT ENABLES EXTERNAL
INTERRUPT ON INTR PIN
* OBJECT CODE IS FB
* TAKES 2 CLOCK CYCLES
22/ 9/ 99

MP 503

L16 OF 40

24 of 27

Assembly language

HLT
* HALT STOPS CPU UNTIL A
HARDWARE INTERRUPT
OCCURS

22/ 9/ 99

MP 503

L16 OF 40

25 of 27

Assembly language

WAIT
* IN CASE OF NMI,THE
PROCESSOR WILL COME
OUT OF WAIT-STATE
* TAKES (3+5n) CYCLES
22/ 9/ 99

MP 503

L16 OF 40

26 of 27

Assembly language

* IT SERVICES THE INTERRUPT

SERVICE ROUTINE
* OBJECT CODE IS 9B
22/ 9/ 99

MP 503

L16 OF 40

27 of 27

LOCK

Assembly language

* IT FORCES 8086 (MAX) LOCK


PIN TO LOW LEVEL
* ONE BYTE INSTRUCTION
* OBJECT CODE IS FO
* TAKES 2 CLOCK CYCLES
22/ 9/ 99

MP 503

L17 OF 40

1 of 23

Assembly language

ESC mem
* IT PLACES CONTENTS OF
SPECIFIED MEMORY LOCATION
ON DATA BUS
* OBJECT CODE IS D8 TO DFH
* TAKES (8+EA) CLOCK CYCLES
22/ 9/ 99

MP 503

L17 OF 40

2 of 23

Assembly language

NOP
* NO OPERATION
* OBJECT CODE IS 90
* TAKES 3 CLOCK CYCLES
22/ 9/ 99

MP 503

L17 OF 40

3 of 23

Assembly language

SAR mem/reg,count
* IT IS AN ARITHMETIC
RIGHT SHIFT INSTRUCTION
* O , S , Z , P & C FLAGS ARE
AFFECTED
22/ 9/ 99

MP 503

L17 OF 40

4 of 23

Assembly language

SHR mem/reg,count
* SHIFT THE REGISTER OR MEM-ORY LOCATION CONTENT
RIGHT
* O, S ,Z ,C , P FLAGS AFFECTED
* LOGICAL SHIFT INSTRUCTION
22/ 9/ 99

MP 503

L17 OF 40

5 of 23

Assembly language

SHL mem/reg,count
* SHIFT THE MEMORY OR
REGISTER COUNTS
* OBJECT CODE IS 2 TO 4 BYTES
* O,S,Z,P & C FLAGS AFFECTED
22/ 9/ 99

MP 503

L17 OF 40

6 of 23

Assembly language

PROGRAM
STRUCTURE
* A SAMPLE PROGRAM
* DOSSEG
* THE MODEL DIRECTIVE
22/ 9/ 99

MP 503

L17 OF 40

7 of 23

Assembly language

PROGRAM SEGMENT
*.STACK, .CODE & .DATA SEGMENT
DIRECTIVES ARE USED.
* THESE ARE PLACED IN ANY
ORDER WITHIN A PROGRAM.
22/ 9/ 99

MP 503

L17 OF 40

8 of 23

Assembly language

PROCEDURES
* IT IS A GROUP OF RELATED
PROGRAM INSTRUCTIONS WITH
A COMMON FUNCTION.
* IT IS ALSO CALLED ROUTINES OR
SUBROUTINES.
22/ 9/ 99

MP 503

L17 OF 40

9 of 23

Assembly language

THE END
DIRECTIVE
* IT MARKS THE LAST LINE IN A
SOURCE PROGRAM TO BE
ASSEMBLED.
22/ 9/ 99

MP 503

L17 OF 40

10 of 23

Assembly language

* IT IS ACCOMPLISHED BY A
LABELTHAT IDENTIFIES ENTRY
POINT OR START.

22/ 9/ 99

MP 503

L17 OF 40

1 1 of 23

Assembly language

SUM OF DATA
* CALCULATE SUM OF
SERIES OF 10 NUMBERS.
STORE RESULT IN
MEMORY LOCATION
22/ 9/ 99

MP 503

L17 OF 40

12 of 23

Assembly language

* Page , 132
title- sum of 10
numbers(SUM.ASM)
dosseg
. Model small
. Stack 100h
. Code
22/ 9/ 99

MP 503

L17 OF 40

13 of 23

Assembly language

mov cx, 10
mov si, offset array

22/ 9/ 99

MP 503

L17 OF 40

14 of 23

Assembly language

BACK:
add di,[si]
adc dh, 0
inc si
loop back
mov total,dx
22/ 9/ 99

MP 503

L17 OF 40

15 of 23

Assembly language

mov ax, 4C00h

; return to dos
INT 2h

main endp
.data
array db 04, 05, 06, 07, 08, 09, 10, 11
12, 13
total dw 0
end main
22/ 9/ 99

MP 503

L17 OF 40

16 of 23

Assembly language

FIND MAXIMUM
FIND THE LARGEST
ELEMENT IN A BLOCK
OF DATA.
22/ 9/ 99

MP 503

L17 OF 40

17 of 23

Assembly language

* THE LENGTH OF BLOCK IS OAW.


* STORE THE MAXIMUM IN
MEMORY

22/ 9/ 99

LOCATION .

MP 503

L17 OF 40

18 of 23

Assembly language

ALGORITHM
* title Maximum in given series
dosseg
.model small
.stack 100h
22/ 9/ 99

MP 503

L17 OF 40

19 of 23

Assembly language

. Code
main proc
mov ax, @data
;initialize ds reg.
Mov ds, ax
mov si, offset list ; initialize si reg.
Mov al, 07th
; largest +ve no.
22/ 9/ 99

MP 503

L17 OF 40

20 of 23

Assembly language

Mov cx, 0ah


Back: cmp a1,[si]

; no. of elements
; is next element>
maximums
;

jnc ahead
mov a1,[si]
Inc si
22/ 9/ 99

;yes, replace max.

MP 503

L17 OF 40

21 of 23

Assembly language

Ahead :
loop back
mov result, a1
mov ax, 4C00h
int 21h

; return to dos

main endp
22/ 9/ 99

MP 503

L17 OF 40

22 of 23

Assembly language

.data
list db 80, 81, 78, 65, 43, 23, 65, 12,
10, 11
result db ?
End main.data
.data

22/ 9/ 99

MP 503

L17 OF 40

23 of 23

Assembly language

PASSING
PARAMETERS
THROUGH STACK
TITLE:- BCD TO BINARY
CONVERSION.
Dosseg
23/ 9/ 99

MP 503

L18 OF 40

1 of 32

Assembly language

.model small
.stack 100h
.code
main proc
mov ax, @ data
mov ds, ax
mov a1, bcd
push ax
call bcdbin
23/ 9/ 99

MP 503

L18 OF 40

2 of 32

Pop ax Assembly
mov bin,a1
mov ax, 4C00h
INT 21h

language

main endp.

23/ 9/ 99

Bcdbin proc near


pushf
push ax
push bx
push cx

MP 503

L18 OF 40

3 of 32

Push bp Assembly
mov bp, sp
mov ax, [BP+12]
mov b1, a1
and b1, 0fh
and a1, 0f0h
mov c1, 04
ror a1, c1
mov bh, 0ah
23/ 9/ 99

MP 503

L18 OF 40

language

4 of 32

Assembly language

Mul bh.
Add a1, b1
mov [BP+12],ax
pop bp
pop cx
pop bx
pop ax
popf
ret
23/ 9/ 99

MP 503

L18 OF 40

5 of 32

Assembly language

Bcdbin endp.
.data
bcd db 32h
bin db ?
End main

23/ 9/ 99

MP 503

L18 OF 40

6 of 32

Assembly language

SEPARATELY
ASSEMBLED MODULES
* PROCEDURES WRITTEN IN
DIFFERENT ASSEMBLY
MODULE.
23/ 9/ 99

MP 503

L18 OF 40

7 of 32

Assembly language

* LINKED TOGETHER WITH


MAIN LINE PROGRAM TO
FORM A BIGGER MODULE.
* TO RESOLVE CORRECT
ADDRESS 2 ASSEMBLER
DIRECTIVE.
23/ 9/ 99

MP 503

L18 OF 40

8 of 32

Assembly language

TYPES OF ASSEMBLER
DIRECTIVES
#
#
23/ 9/ 99

PUBLIC
EXTRN
MP 503

L18 OF 40

9 of 32

Assembly language

PUBLIC
* VARIABLES DEFINED IN
ONE MODULE, BUT USED
IN ANOTHER MODULE.
23/ 9/ 99

MP 503

L18 OF 40

10 of 32

Assembly language

EXAMPLE:PUBLIC DISPLAY, TELLS THE


LINKER THAT DISPLAY
VARIABLE CAN BE LEGALLY
ACCESSED BY ANOTHER
ASSEMBLY MODULE.
23/ 9/ 99

MP 503

L18 OF 40

11 of 32

Assembly language

EXTRN
* VARIABLES BEING USED
IN THIS MODULE, BUT
HAS BEEN DEFINED SOME
WHERE ALSO.
23/ 9/ 99

MP 503

L18 OF 40

12 of 32

Assembly language

* TELLS THE LINKER TO LOOK


FOR THE ADDRESS OF VARI-ABLE IN MODULE, IN WHICH
IT IS DEFINED AS PUBLIC.
23/ 9/ 99

MP 503

L18 OF 40

13 of 32

Assembly language

* TELLS THE ASSEMBLER TO


LEAVE THE ADDRESS OF
VARIABLE UNRESOLVED.

23/ 9/ 99

MP 503

L18 OF 40

14 of 32

Assembly language

INTERFACING
ASSEMBLY LANGUAGE
ROUTINES
ASSEMBLY LANGUAGE CAN BE
INTERFACED WITH MOST OF
HIGH LEVEL LANGUAGE.
23/ 9/ 99

MP 503

L18 OF 40

15 of 32

Assembly language

* HOW IS SUBROUTINE
INVOLVED ?
* HOW ARE PARAMETERS
PASSED ?
* HOW ARE THE VALUES
RETURNED ?
23/ 9/ 99

MP 503

L18 OF 40

16 of 32

Assembly language

INTERFACE ASSEMBLY
LANGUAGE WITH C OR
C++
* SPECIFIC SEGMENT NAME
GIVEN TO THE CODE SEGMENT
OF ASSEMBLY LANGUAGE SUBROUTINE.
23/ 9/ 99

MP 503

L18 OF 40

17 of 32

Assembly language

THE NAME VARIES DEPENDING


ON THE C COMPILER USED.
* MICROSOFT C, QUICK C &
TURBO C REQUIRE THE
SEGMENT NAME TO BE _
TEXT OR SEGMENT NAME
WITH SUFFIX _ TEXT.
23/ 9/ 99

MP 503

L18 OF 40

18 of 32

Assembly language

* C PASSES THE VARIABLE TO


ASSEMBLY LANGUAGE TO THE
STACK. FUNCTION CALLING
SYNTAX OF
function-name( arg1, arg2, . arg n)

23/ 9/ 99

MP 503

L18 OF 40

19 of 32

Assembly language

* IN ASSEMBLY LANGUAGE
SOURCE FILE, THE
ASSEMBLY LANGUAGE
ROUTINES TO BE CALLED
FROM C MUST BEGIN WITH
UNDERLINE CHARACTER.
23/ 9/ 99

MP 503

L18 OF 40

20 of 32

Assembly language

TO SAVE ANY SPECIAL


PURPOSE REGISTERS LIKE
(CS, DS, SS, ES , BP , SI OR DI)
ASSEMBLY LANGUAGE
ROUTINE MAY DISTURB.
23/ 9/ 99

MP 503

L18 OF 40

21 of 32

Assembly language

ADDM SUBROUTINE
TITLE:- SUBROUTINE
CALLED BY C
public _ addm
_Text segment byte publicCODE
23/ 9/ 99

MP 503

L18 OF 40

22 of 32

Assembly language

Assume CS : _text.
_addm proc near
push bp
mov bp, sp
mov ax, [bp+8]
add ax [bp+6]
add ax [bp+4]
23/ 9/ 99

MP 503

L18 OF 40

23 of 32

Assembly language

pop bp
ret
_addm endp
text ends
end

23/ 9/ 99

MP 503

L18 OF 40

24 of 32

Assembly language

ASSEMBLING &
LINKING
ASSEMBLE THE PROGRAM
MASM /L / N / C exch .
23/ 9/ 99

MP 503

L18 OF 40

25 of 32

Assembly language

* LINKS AND LOADS THE MEM-ORY & BEGINES TO READ


THE SOURCE PROGRAM.
23/ 9/ 99

MP 503

L18 OF 40

26 of 32

Assembly language

DOS

MASM

COMMAND
LINE
EXCH;

COMMENT

CREATE ONLY
AN OBJECT

23/ 9/ 99

MP 503

FILE NAME
L18 OF 40
27 of
EXCH.OBJ.

32

Assembly language

MASM/L EXCH;

23/ 9/ 99

MP 503

CREATE A
LISTING
FILE NAMED
EXCH .LST

L18 OF 40

28 of 32

Assembly language

MASM/L/N EXCH;

23/ 9/ 99

MP 503

CREATE A
LISTING FILE
BUT SUPRESS
THE SYMBOL
TABLE THAT
USUALLY PRI-NTED AT THE
END.

L18 OF 40

29 of 32

Assembly language

MASM/Z

EXCH;

CREATE AN
OBJECT &

DISPLAY SOURCE
LINES CONTAINING
ERRORS IN SCREEN
23/ 9/ 99

DURING ASSEMBLY.
MP 503

L18 OF 40

30 of 32

Assembly language

MASM/C

23/ 9/ 99

EXCH;

CREATE A
CROSS
REFERENCE FILE
NAME EXCH.CRF
THAT CONTAINS
LINE NUMBERS OF
ALL NAMES IN THE
PROGRAM.
MP 503

L18 OF 40

31 of 32

Assembly language

MASM/ZI EXCH;

PLACE A LIST
OF SYMBOLS
& LINE
NUMBER IN
OBJECT

23/ 9/ 99

MP 503

FILE FOR USE.


L18 OF 40

32 of 32

Assembly language

LINK THE PROGRAM


LINKER PROGRAM READS

THE OBJECT FILE AS INPUT


CREATES AN EXECUTABLE
FILE & OPTIONALLY CREATES
A mup FILE.
23/ 9/ 99

MP 503

L19 OF 40

1 of 22

Assembly language

LINKER OPTION
COMMAND LINE TO PREPARE
AN EXECUTABLE FILE FOR
DEBUGGING WITH CODE-VIEW IS:
LINK/CO. EXCH;
23/ 9/ 99

MP 503

L19 OF 40

2 of 22

Assembly language

OPTION
/A

ACTION
WRITES SEGMENTS
IN ALPHABETICAL
ORDER.

/B

SETS THE BUFFER


23/ 9/ 99

MP 503

L19 OF 40

3 of 22

Assembly language

/C

CREATES CROSS
REFERENCE FILE.

/D

CREATES A PASS
1 LISTING.

23/ 9/ 99

MP 503

L19 OF 40

4 of 22

Assembly language

/D symbol
[=value]
/E

DEFINES AN
ASSEMBLER
SYMBOL.
CREATES CODE
FOR EMULATED
FLOATING POINT
INSTRUCTIONS.

23/ 9/ 99

MP 503

L19 OF 40

5 of 22

Assembly language

/H

LIST COMMAND
LINE SYNTAX &
ALL ASSEMBLER
OPTIONS.

/I path

23/ 9/ 99

SETS THE INCLUDE


FILE SEARCH PATH.
MP 503

L19 OF 40

6 of 22

Assembly language

/L

SPECIFIES AN
ASSEMBLY
LISTING FILES.

/ML

MAKES NAMES
CASE
SENSITIVE.
23/ 9/ 99

MP 503

L19 OF 40

7 of 22

Assembly language

/MU

CONVERTS NAMES
TO UPPER CASE
LETTER.

/MX

MAKES PUBLIC
AND EXTERNAL
NAME CASE
SENSITIVE.
23/ 9/ 99

MP 503

L19 OF 40

8 of 22

Assembly language

/IV

SUPPRESSES TABLES IN
THE LISTING FILE.

/P

CHECK FOR IMPURE CODE.

/T

SUPPRESSES MESSAGES
FOR SUCCESSFUL ASSEM-BLY.
23/ 9/ 99

MP 503

L19 OF 40

9 of 22

Assembly language

/V

DISPLAY EXTRA
STATISTICS
ON THE SCREEN.

/W{0/1/2}

SETS THE ERROR


DISPLAY LEVEL.

23/ 9/ 99

MP 503

L19 OF 40

10 of 22

Assembly language

/Z

/ZI

DISPLAYS ERRORNEOUS
SOURCES LINES ON THE
SCREEN DURING
ASSEMBLY.
CREATES A CODE
VIEW COMPATIBLE
OBJECT FILE.
23/ 9/ 99

MP 503

L19 OF 40

1 1 of 22

Assembly language

RUN THE
PROGRAM
PROGRAM RUN BY TYPING ITS
NAME ON THE DOS COMMAND
LINE.

23/ 9/ 99

MP 503

L19 OF 40

12 of 22

Assembly language

EXE PROGRAMS
MANY ASSEMBLY LANGUAGE
PROGRAMS ARE DESIGNED TO
BE ASSEMBLED AS EXE
PROGRAMS.
23/ 9/ 99

MP 503

L19 OF 40

13 of 22

Assembly language

PREFERENCE OF
EXE PROGRAM
CODEVIEW CAN DISPLAY
SOURCE STATEMENTS FROM
EXE PROGRAMS , MAKING THEM
BETTER SUITED TO DEBUGGING.
23/ 9/ 99

MP 503

L19 OF 40

14 of 22

Assembly language

EXE FORMAT ASSEMBLER


PROGRAMS ARE MORE EASILY
CONVERTED INTO SUBROUTINES FOR HIGH LEVEL
LANGUAGES.

23/ 9/ 99

MP 503

L19 OF 40

15 of 22

Assembly language

PROGRAM TEMPLATE
USED WHEN NEW
PROGRAMS.
SIMPLIFIED SEGMENT
DIRECTIVES ARE USED
23/ 9/ 99

MP 503

L19 OF 40

16 of 22

Assembly language

EXE PROGRAM
TEMPLATE
PAGE, 132
title
dosseg
23/ 9/ 99

CE 6265 L19 OF 40

17 of 22

Assembly language

.model small
.stack 100h
.code
Main proc
MOV ax,@ data
MOV ds, ax

23/ 9/ 99

MP 503

L19 OF 40

18 of 22

Assembly language

:
:
MOV ax, 4cooh
INT 21h
main endp.
.data
end main.
23/ 9/ 99

MP 503

L19 OF 40

19 of 22

Assembly language

USE OF BATCH
FILE
echo off
cls
23/ 9/ 99

MP 503

L19 OF 40

20 of 22

Assembly language

masm/I/n%1;
if error level 1 go to end
link %1;
: end.
23/ 9/ 99

MP 503

L19 OF 40

21 of 22

Assembly language

EQUATES
THIS ALLOW CONSTANTS

& LITERALS TO BE GIVEN


SYMBOLIC NAMES.

23/ 9/ 99

MP 503

L19 OF 40

22 of 22

Assembly language

EQUAL SIGN
DIRECTIVE
CREATES AN ABSOLUTE
SYMBOL BY ASSIGNING
THE NUMERIC EXPRESS-ION TO A NAME.
23/ 9/ 99

MP 503

L20 OF 40

1 of 22

Assembly language

SYNTAX :-

NAME=EXPRESSION

23/ 9/ 99

MP 503

L20 OF 40

1 of 22

Assembly language

THE EQU DIRECTIVE


ASSIGNS TO A STRING OR

A NUMERIC CONSTANT.
INCREASES THE READ
ABILITY OF A PROGRAM.
23/ 9/ 99

MP 503

L20 OF 40

2 of 22

Assembly language

OPERATORS &
EXPRESSIONS
AN EXPRESSION IS A
COMBINATION OF OPERATORS
OPERAND IS CONVERTED BY
THE ASSEMBLER INTO A SINGLE
VALUE
23/ 9/ 99

CE-6265

L20 OF 40

3 of 22

Assembly language

TYPES OF OPERATORS
*ARITHMATIC OPERATOR
*BOOLEAN OPERATOR
*OFFSET OPERATOR
*SEG OPERATOR
*PTR OPERATOR
23/ 9/ 99

CE-6265

L20 OF 40

4 of 22

Assembly language

ARITHMATIC
OPERATOR
THESE OPERATORS MAY BE USED
ONLY WITH INTEGERS, WITH
EXECEPTION OF UNARY PLUS(+)
AND MINUS (-) AND ALSO WITH
REAL NUMBERS.
23/ 9/ 99

CE-6265

L20 OF 40

5 of 22

Assembly language

BOOLEAN
OPERATORS
THE AND ,OR ,NOT , & EXOR
OPERATORS USED IN ASSEMBLER
EXPRESSIONS,WHICH EVALUATED
AT ASSEMBLY TIME.
23/ 9/ 99

CE-6265

L20 OF 40

6 of 22

Assembly language

THE STAT & COUNTER HAVE


BEEN DECLARED USING
EQUATES. THE VALID EXPRES-SION IS:stat AND Ofh
(Counter or 10h)& 7Fh
Not stat
(Counter *20)& 110000h
23/ 9/ 99

CE-6265

L20 OF 40

7 of 22

Assembly language

OFFSET OPERATOR
RETURNS THE DISTANCE OF
LABEL OR VARIABLE FROM
THE BEGINNING OF ITS
SEGMENT.
23/ 9/ 99

CE-6265

L20 OF 40

8 of 22

Assembly language

SEG OPERATOR
RETURNS THE SEGMENT

VALUE OF A LABEL OR
VARIABLE .

USED TO PLACE AN ADDRESS


IN A SEGMENT REGISTER.
23/ 9/ 99

CE-6265

L20 OF 40

9 of 22

Assembly language

PTR OPERATOR
FORCES A VARIABLE OR
LEVEL TO BE USED AS IF IT
WERE OF A SPECIFIED TYPE.
SYNTAX:- type PTR
23/ 9/ 99

CE-6265

L20 OF 40

10 of 22

Assembly language

OPERANDS WITH
DISPLACEMENTS
ADDITION & SUBTRACT-ION OPERATORS USED
TO ACCESS A LIST OF
VALUES.
23/ 9/ 99

CE-6265

L20 OF 40

11 of 22

Assembly language

ADDITION OPERATOR ADDS


TO THE OFFSET OF LABEL.
EXAMPLE:MOV b1, array 1
TO ACCESS THE BYTE IN
ARRAY 1, ADD 1 TO LEBEL:
MOV BL, array 1+1
23/ 9/ 99

CE-6265

L20 OF 40

12 of 22

Assembly language

SUBTRACT OPERATOR IS TO
SUBTRACT FROM A LABELS
OFFSET.

23/ 9/ 99

CE-6265

L20 OF 40

13 of 22

Assembly language

EXAMPLE:MOV BL, donelist-1;MOV 1-BL.


:
:
List db 5,4,3,2,1
Donelist db 0
23/ 9/ 99

CE-6265

L20 OF 40

14 of 22

Assembly language

MASM OPERATORS

HIGH:- RETURNS THE HIGH


8 BITS OF A CONSTANT
EXPRESSION.
23/ 9/ 99

CE-6265

L20 OF 40

15 of 22

Assembly language

LOW:- RETURNS THE LOW 8


BITS OF A CONSTANT
EXPRESSION.
LENGTH:- RETURNS THE
NUMBER OF BYTE,
DWORD, QWORD, OR
10 BYTE ELEMENTS
23/ 9/ 99

CE-6265

L20 OF 40

16 of 22

IN A VARIABLE.

Assembly language

MASK:- RETURNS A BIT MASK


FOR THE BIT POSIONS
IN A FIELD WITHIN A
VARIABLE. THE VARI-ABLE DEFINED WITH
RECORD DIRECTIVE.
23/ 9/ 99

CE-6265

L20 OF 40

17 of 22

Assembly language

SEG:- RETURNS THE SEGMENT


VALUE OF AN EXPRESSION,
WHETHER IT BE A VARI-ABLE, SEGMENTS/GROUP
NAME, A LABEL OR ANY
OTHER SYMBOL.
23/ 9/ 99

CE-6265

L20 OF 40

18 of 22

Assembly language

SIZE:- RETURNS THE TOTAL NO.


OF BYTES ALLOCATED
FOR A VARIABLE.
EQ,NE,LT,LE,GT,GE, RETURN A
VALUE OF OFFFFh WHEN A
RELATION IS TRUE OR 0
WHEN FALSE.
23/ 9/ 99

CE-6265

L20 OF 40

19 of 22

Assembly language

STRUCTURE FIELD NAME(.):IDENTIFIES A FIELD WITH-IN A PREDEFINED STRUC-TURE BY ADDING THE


OFFSET OF THE FIELD TO
THE OFFSET OF A
VARIABLE.
FORMAT: Variable.field.
23/ 9/ 99

CE-6265

L20 OF 40

20 of 22

Assembly language

THIS:-

CREATES AN OPERAND
OF SPECIFIED TYPE AT
THE CURRET PROGRAM
LOCATION.

TYPE:-

RETURNS A BYTE THAT


DEFINES THE MODE &
23/ 9/ 99
MP 503
L20 OF 40
21 of 22
SCOPE OF AN

Assembly language

WIDTH:-

23/ 9/ 99

RETURNS THE NUMBER


OF BITS OF A GIVEN
FIELD WITHIN A
VARIABLE. THE
VARIABLE DEFINED
USING THE RECORD
DIRECTIVE.
CE-6265

L20 OF 40

22 of 22

Assembly Language

SUM OF DATA

TITLE:- SUM OF 10 NUMBERS.


Dosseg
.Model small
.stack 100h
24/09/99

CE-6265

L21 of 40

1of 23

Assembly Language

.code
main proc
MOV ax,@ data
mov ds,ax
mov dx,0
mov cx,10
mov si,offset array
24/09/99

CE-6265

L21 of 40

2 of 23

Assembly Language

BACK :
add d1,[si]
adc dh,0
inc si
loop back
24/09/99

CE-6265

L21 of 40

3 of 23

Assembly Language

MOV total,dx
mov ax, 4c00h
main endp
.data
array db 04,05,06,07,08,09,10,11,12,13
total dw 0
end main
24/09/99

CE-6265

L21 of 40

4of 23

Assembly Language

NUMBER OF NEGATIVE
ELEMENTS
TITLE:- NO. OF NEGATIVE
ELEMENTS IN A GIVEN
SENCE.
24/09/99

CE-6265

L21 of 40

5of 23

dosseg

Assembly Language

. Model small
.stack 100h
.code
main proc
24/09/99

CE-6265

L21 of 40

6of 23

Assembly Language

mov ax,@ data


mov ds,ax
mov si,offset list
mov al, 07fh
mov cx,10h
24/09/99

CE-6265

L21 of 40

7of 23

Assembly Language

mov b1,00
Back:
cmp a1,[si]
jnc ahead
inc b1
inc si
24/09/99

CE-6265

L21 of 40

8of 23

Assembly Language

ahead:
loop back

mov result, b1
mov ax,4C00h
int 21h
24/09/99

CE-6265

L21 of 40

9 of 23

Assembly Language

Main endp
.data
list db 80,81,78,65,43,23,65,12,
10,11,FE,FB,FA,A4,00,02
result db?
End main

24/09/99

CE-6265

L21 of 40

10 of 23

Assembly Language

FIND MAXIMUM
TITLE:- MAXIMUM IN
GIVEN SERIES.
Dosseg
.model small
.stack 100h
24/09/99

CE-6265

L21 of 40

11of 23

Assembly Language

.code
Main proc
mov ax,@ data
mov ds,ax
mov si, offset list
mov al,07th
mov cx,0ah
24/09/99

CE-6265

L21 of 40

12 of 23

Back:
cmp a1,[si]

Assembly Language

jnc ahaed
mov a1,[si]
inc si
24/09/99

CE-6265

L21 of 40

13 of 23

Ahead:
loop back

Assembly Language

mov result, a1
mov ax, 4C00h
int 21h
24/09/99

CE-6265

L21 of 40

14 of 23

Assembly Language

Main endp
.data
list db 80,81,78,65,43,23,
65,12,10,11
result db?
End main
24/09/99

CE-6265

L21 of 40

15of 23

Assembly Language

COPYING A BLOCK OF
DATA
TITLE:- COPYING A BLOCK
OF DATA.
Dosseg
.model small
24/09/99

CE-6265

L21 of 40

16 of 23

Assembly Language

.stack 100h
.code
main proc
mov ax,@ data
mov ds, ax
24/09/99

CE-6265

L21 of 40

17 of 23

Assembly Language

mov si, offset array1


mov di, offset array2
mov cx,0ah
back:
mov a1,[si]
mov [di], a1
24/09/99

CE-6265

L21 of 40

18 of 23

inc si
inc di

Assembly Language

loop back
mov ax,4c 00h
INT 21h
main endp.
24/09/99

CE-6265

L21 of 40

19of 23

Assembly Language

.data
array1 db 10h,20h,30h,40h
50h,60h.
array2 db 6 dup(?)
end main.
24/09/99

CE-6265

L21 of 40

20 of 23

Assembly Language

UPPERCASE
CONVERSION
TITLE:- UPPERCASE
DISPLAY PROGRAM.
Dosseg
.model small
.stack 100h
24/09/99

CE-6265

L21 of 40

21 of 23

Assembly Language

Main proc
back1:
mov ah,8
int 21h
cmp a1, 0dh
je ahead 1
cmp a1, a
jb ahead 2
cmp a1, z
ja ahead 2
24/09/99

CE-6265

L21 of 40

22 of 23

Assembly Language

ahead2:

ahead1:

Sub a1, 20h


mov ah, 2
mov d1, a1
int 21h
jmp back1
mov ax 4c00h
int 21h

main endp
end main
24/09/99

CE-6265

L21 of 40

23 of 23

Assembly Language

CODE CONVERSION
CONTINUAL PROBLEM
FOR MICROPROCESSER.
SIMPLE TO PERFORM IN
HARDWARE.
24/09/99

CE-6265

L22 of 40

1 of 23

Assembly Language

HEX TO ASCII
TITLE:- HEX TO ASCII
CONVERSION.
Dosseg
.model small
.stack 100h
24/09/99

CE-6265

L22 of 40

2 of 23

Assembly Language

.code
Main proc
mov ax,@ data
mov ds,ax
mov a1, num 1
24/09/99

CE-6265

L22 of 40

3 of 23

cmp a1, 0ah

Assembly Language

jc ascz
add a1, A- 9-1
ascz:
adi 0
24/09/99

CE-6265

L22 of 40

4 of 23

Assembly Language

Mov ASC, a1
mov ax, 4c00h
int 21h
main endp
.data
num 1 db 09
ASC db ?
End main.
24/09/99

CE-6265

L22 of 40

5 of 23

Assembly Language

DECIMAL TO 7SEGMENT
TITLE:- DECIMAL TO 7SEGMENT.
Dosseg
.model small
. Stack 100h
24/09/99

CE-6265

L22 of 40

6 of 23

Assembly Language

.code

main proc
mov ax,@ data
mov ds,ax
mov a1, num1
mov bx, offset table
xlat
mov result,a1
mov ax, 4c 00h
24/09/99

CE-6265

L22 of 40

7 of 23

Assembly Language

INT 21h
main endp
.data
num1 db 05
result db ?
Table db 3F,06,58,4F,66,
6D,7D,07,7F,6Fh
end main.
24/09/99

CE-6265

L22 of 40

8 of 23

Assembly Language

FROM ASCII TO
HEXADECIMAL
TITLE:- CONVERSION FROM
ASCII DIGITS TO
HEX.
Dosseg
.model small
24/09/99

CE-6265

L22 of 40

9of 23

Assembly Language

.code
.stack100h
main proc
mov ax,@ data
mov ds,ax
mov a1,ASCII
sub a1, 30h
cmp a1, 9
jg ahead
24/09/99

CE-6265

L22 of 40

10of 23

Jmp DONE Assembly


AHEAD: sub a1, 07h
DONE: mov Ans,a1
mov ax, 4C00h
INT 21h
main endp
.data
ASCII db 043h.
ANS db
?
End main
24/09/99

CE-6265

L22 of 40

Language

11of 23

Assembly Language

ARITHMATIC
PROBLEMS
TITLE:- MULTIPLICATION
REPEATED ADDITION.
Dosseg
.model small
.stack 100h
24/09/99

CE-6265

L22 of 40

12 of 23

Assembly Language

.code
main proc
mov ax,@ data
mov ds,ax
sub ax,ax
sub cx,cx
mov c1, num2
sub c1, 01
mov a1,num 1
24/09/99

CE-6265

L22 of 40

14 of 23

Assembly Language

Again:
add a1, num 1
add ah,00h
loop again
mov prod, ax
mov ax, 4C00h
int 21h
main endp
.data
24/09/99

CE-6265

L22 of 40

15 of 23

Assembly Language

Num 1 db 10h
num 2 db 10h
prod dw ?
End main

24/09/99

CE-6265

L22 of 40

16 of 23

Assembly Language

8-BIT BINARY
MULTIPLICATION
USING SHIFT&ADD
TITLE:- MULTIPLICATION
USING SHIFT &
ADD METHOD.
Dosseg
24/09/99

CE-6265

L22 of 40

17 of 23

Assembly Language

.model small
.stack 100h
.code
main proc
mov ax, @ data
mov ds, ax
mov b1,val 2
mov cx, 08h
mov ax, 0000h
24/09/99

CE-6265

L22 of 40

18 of 23

Back :

Assembly Language

add ax,ax
sal b1,1
jnc ahead
add ax, dx
ahead:
loop back
mov ans, ax
mov ax, 4C00h
24/09/99

CE-6265

L22 of 40

19 of 23

Main endp

Assembly Language

.data
val 1 db 10h
val 2 db 20h
Ans dw ?
End main
24/09/99

CE-6265

L22 of 40

20 of 23

16-BIT Assembly Language


MULTIPLICATION
USING MUL INSTRUCTION
TITLE:- MULTIPLICATION
OF 16- BIT * 16 -BIT.
dosseg
24/09/99

CE-6265

L22 of 40

21 of 23

Assembly Language

.model small
.stack 100h
.code
main proc
mov ax,@ data
mov ds,ax
sub dx,bx
mov ax,val 1
mul val 2
24/09/99

CE-6265

L22 of 40

22 of 23

Mov word Ptr Ans 1 Assembly


mov word Ptr Ans1+2, dx
mov ax, 4C00h
int 20h
main endp
.data
val 1 dw 4567h
val 2 dw 1234h
Ans 1 dd ?
End main
24/09/99

CE-6265

L22 of 40

Language

2 3 of 23

Assembly Language

8-BIT BINARY DIVISION


TITLE:- 16- BIT BY 8-BIT
DIVISION.
Dosseg
.model small
.stack 100h
24/09/99

CE-6265

L23 of 40

1 of 24

Assembly Language

.code
main proc
mov ax, @ data
mov dx,ax
mov ax, word ptr val
mov b1, byte ptr val 2
mov bh, 00
mov cx, 08
mov d1,00
24/09/99

CE-6265

L23 of 40

2 of 24

BACK:

Assembly Language

add ax,ax
add d1,d1
mov dh, ah
sub ah,b1
jc ahead
mov dh, ah
inc d1
ahead:
24/09/99

CE-6265

L23 of 40

3 of 24

Assembly Language

mov ah,dh
loop back
mov Quo, d1
mov Rem, ah
mov ax, 4C00h
INT 21h
main endp.
Data
val 1 dw 1234h
24/09/99

CE-6265

L23 of 40

4of 24

Assembly Language

Val 2 db
rem db
Ouo db
End main

24/09/99

CE-6265

34h
?
?

L23 of 40

5of 24

Assembly Language

SQUARE ROOT
ALGORITHM
TITLE:- SQUARE ROOT
ALGORITHM.
Dosseg
.model small
.stack 100h
24/09/99

CE-6265

L23 of 40

6 of 24

Assembly Language

.code
main proc
mov ax, @ data
mov ds, ax
mov cx, 01h
back:
sub num, cx
j1 done
inc dx
24/09/99

CE-6265

L23 of 40

7of 24

Assembly Language

Add cx, 2
jmp back
mov ans, dx
done:
mov ax, 4C00h
int 21 h
main endp.
.data
24/09/99

CE-6265

L23 of 40

8 of 24

Assembly Language

num dw 1234h
ans dw

End main.

24/09/99

CE-6265

L23 of 40

9of 24

Assembly Language

ASCII ARITHMETIC
CPU CALCULATES IN BINARY,
WE OFTEN NEED PERFORM ARITHMETIC ON NUMBERS(ASCII)
THAT IS INPUT FROM THE
CONSOLE OR FILE .
24/09/99

CE-6265

L23 of 40

10 of 24

Assembly Language

AAA INSTRUCTION
ADJUST THE BINARY
RESULT OF AN ADD OR
ADC INSTRUCTION.
EXAMPLE:MOV AH, 0
MOV AL, 9
24/09/99

CE-6265

L23 of 40

11 of 24

Assembly Language

ADD AL, 3
AAA
OR 3030H

24/09/99

CE-6265

L23 of 40

12 of 24

Assembly Language

AAS INSTRUCTION
ADJUSTS THE BINARY
RESULT OF SUB OR SBB
INSTRUCTION.
EXAMPLE:MOV AH, 0
24/09/99

CE-6265

L23 of 40

13 of 24

Assembly Language

MOV AL, 8
SBB AL, 9
AAS
OR AL, 30H
24/09/99

CE-6265

L23 of 40

14 of 24

Assembly Language

AAM INSTRUCTION
ADJUSTS THE BINARY RESULT
TO A MUL INSTRUCTION .
24/09/99

CE-6265

L23 of 40

15 of 24

Assembly Language

EXAMPLE:---MOV BL, 04 H
MOV AL, 06
MUL BL
AAM
24/09/99

CE-6265

L23 of 40

1 6of 24

Assembly Language

ADD INSTRUCTION
IT ADJUSTS UNPACKED BCD
DIVIDEND IN AX BEFORE A
DIVISION OPERATION .
24/09/99

CE-6265

L23 of 40

17 of 24

Assembly Language

EXAMPLE:--MOV AX, 0307 H


AAD MOV BL,4
DIV BL
MOV QUO, AL
MOV REM,AH
24/09/99

CE-6265

L23 of 40

18 of 24

Assembly Language

PACKED DECIMAL
ARITHMETIC

* CONTAINS 4 DIGITS PER BYTE


* DECIMAL DIGIT IS
REPRESENTED BY 4 BITS
24/09/99

CE-6265

L23 of 40

19 of 24

Assembly Language

DAA INSTRUCTION
CONVERTS BINARY RESULTS
OF ADD OR ADC INSTRUCTION
IN AL TO PACKED IN BCD
FORMAT.
24/09/99

CE-6265

L23 of 40

20 of 24

Assembly Language

EXAMPLE:---MOV AL, 35H


MOV AL,48 H
DAA

24/09/99

CE-6265

L23 of 40

21 of 24

Assembly Language

DAS INSTRUCTION
CONVERTS BINARY RESULT
OF SUB OR SBB INSTRUCTION IN
AL TO PACKED BCD FORMAT
24/09/99

CE-6265

L23 of 40

22 of 24

Assembly Language

EXAMPLE:----MOV BL, 48 H
MOV AL , 95 H
SUB AL, BL
DAS
24/09/99

CE-6265

L23 of 40

23 of 24

Assembly Language

BCD ADDITION
THIS PROGRAM ADDS TWO
10 BYTES PACKED BCD
NUMBERS.
18 SIGNIFICANT DIGITS MAY
BE ENCODED .
24/09/99

CE-6265

L23 of 40

24 of 24

Assembly Language

EXAMPLE:----TITLE:-PACKED DECIMAL
ADDITION
dosseg
.model small
.Stack 100 h
24/09/99

CE-6265

L24 of 40

1 of 23

Assembly Language

. Code

main proc
mov ax, @DATA
mov ds, as
mov cx , 9
mov si, 0
clc
24/09/99

CE-6265

L24 of 40

2 of 23

Assembly Language

back:
mov a1, val 1[ si ]
adc a1, val 2 [ s2 ]
daa
mov result [si] , a1
24/09/99

CE-6265

L24 of 40

3 of 23

Assembly Language

inc si
loop back
mov result[ si ], a1
mov ax, 4C00h
int 21h
main endp
24/09/99

CE-6265

L24 of 40

4of 23

Assembly Language

.data
val 1 label byte
dt 012345678998765432
val 2 label byte
dt 9876543219875432101
result
label byte
dt ?
end main
24/09/99

CE-6265

L24 of 40

5of 23

Assembly Language

STRING PROCESSING
SHOWS HOW TO CREATE A
LIBRARY OF USEFUL STRING
PROCEDURES
SUITED TO ASSEMBLY
LANGUAGE
24/09/99

CE-6265

L24 of 40

6of 23

Assembly Language

FORMATS OF STRING
PROCESSING
1. FIXED
2. LENGTH DESCRIPTOR A
BEGINNING.
3. STRING TERMINATED BY 0
BYTE
24/09/99

CE-6265

L24 of 40

7 of 23

Assembly Language

COPY A LIST OF WORDS


TITLE:-- COPY LIST OF WORDS
. dosseg
.model small
.stack 100h
.code
24/09/99

CE-6265

L24 of 40

8 of 23

Assembly Language

main proc
mov ax, @ data
mov ds, ax
cld
mov cx, 0ch
mov si,offset source
mov di , offset destination
rep movsb
24/09/99

CE-6265

L24 of 40

9 of 23

Assembly Language

mov ax, 4c00h


int21h
main endp
.data
source db abxyzcdefghi
destination db 12 dup (?)
end main
24/09/99

CE-6265

L24 of 40

10 of 23

Assembly Language

COMPARING SIGNED
INTEGERS
* IN THIS EACH NUMBER IN
ARRAY ONE IS COMPARED TO
ARRAY TWO .
24/09/99

CE-6265

L24 of 40

1 1of 23

Assembly Language

EXAMPLE:--

TITLE:- COMPARING SIGNED


INTEGERS.
Dosseg
.model small
.stack 100h
.code
24/09/99

CE-6265

L24 of 40

12 of 23

Assembly Language

main proc
mov ax,@ data
mov ds, ax
c1d
mov si, offset array one
mov di,offset array two
mov cx,06
repe CCMPSW
24/09/99

CE-6265

L24 of 40

13 of 23

j1 ahead Assembly
loop
ahead: mov ax,4C00 h
INT 21h
main endp
.data
array_one dw
array_ two dw
end main
24/09/99

CE-6265

L24 of 40

Language

14 of 23

Assembly Language

SCAN FOR MATCHING


CHARACTER
* TITLE:- SCAN FPR
MATCHING CHARACTER.
Dosseg
.model small
.Stack 100h
24/09/99

CE-6265

L24 of 40

15 of 23

Assembly
.code
main proc
mov ax,@ data
mov ds, ax
cld
mov di, offset alpha
mov a1, F
mov cx,8
repne scasb
24/09/99

CE-6265

L24 of 40

Language

16 of 23

jnz exit

Assembly Language

dec di
exit:
mov ax, 4c00h
int 21h
main endp
.data
alpha db ABCDEFGH, 0
end main
24/09/99

CE-6265

L24 of 40

17 of 23

Assembly Language

REMOVE TRAILING
BLANKS
TITLE:- REMOVING

TRAILING BLANKS.
Dosseg
.model small
24/09/99

CE-6265

L24 of 40

18 of 23

Assembly Language

.stack 100h
.code
main proc
mov ax,@ data
mov ds, ax
std
mov di, offset,destn
add di, destlen- 1
mov cx, destlen
24/09/99

CE-6265

L24 of 40

19 of 23

Assembly Language

mov a1,20h
repe scasb
jnz exit
mov byte ptr[di+2],0
exit:
mov ax, 4C00h
int 21h
main endp
.data
24/09/99

CE-6265

L24 of 40

20 of 23

Assembly Language

Dest db Destination string


destlen equ $-dest
end main

24/09/99

CE-6265

L24 of 40

21 of 23

Assembly Language

PROCEDURES
INTRODUCTION OF
PROCEDURES GIVE BETTER
CONSTRUCTED PROGRAMS.
24/09/99

CE-6265

L24 of 40

22 of 23

Assembly Language

NEAR PROCEDURE:- THE CURRENT VALUE OF IP IS PUSHED


ON STACK.
RETURN PROCEDURE:- VALUE ON
STACK IS POPPED BACK INTO
IP.
24/09/99

CE-6265

L24 of 40

23 of 23

Assembly Language

STACK
A MEMORY BUFFER OR ARRAY
TO WHICH WE ATTACH
SPECIAL MEANING .
24/09/99

CE-6265

L25of 40

1 of 24

Assembly Language

* TWO REGISTERS ADDRESS


THE STACK :1. SS STACK SEGMENT
2. SP STACK POINTER
24/09/99

CE-6265

L25of 40

2 of 24

Assembly Language

* PUSH OPERATION PLACES


NEW VALUE ON STACK &
DECREMENTS SP BY 2.
THUS STACK GROWS
DOWNWARD IN MEMORY
AS NEW VALUES ARE
PUSHED.
24/09/99

CE-6265

L25of 40

3 of 24

Assembly Language

* POP OPERATION REMOVES


DATA FROM STACK BY
COPYING INTO REGISTER &
INCREMENTS SP BY 2.

24/09/99

CE-6265

L25of 40

4 of 24

Assembly Language

* IN SINGLE PROGRAM , STACK


GROWS & SHRINKS
CONSTANTLY.
* REGISTERS & OPERANDS ARE
ON STACK.
24/09/99

CE-6265

L25of 40

5 of 24

Assembly Language

SAVING & RESTORING


REGISTERS
Push
Push
mov
mov
24/09/99

ax
dx
ah , 9
bx , offset mess
CE-6265

L25of 40

6 of 24

Assembly Language

INT
21h
pop dx
pop ax
:

24/09/99

CE-6265

L25of 40

7of 24

Assembly Language

SEQUENCE OF PUSHES
& POPS
POPS ARE ALWAYS A
MIRROR IMAGE OF
PUSHES BECAUSE STACK
IS LIFO STRUCTURE.
24/09/99

CE-6265

L25of 40

8 of 24

Assembly Language

SUBROUTINES
* RESPONSIBLE TO SAVE &
RESTORE ANY REGISTER
IT USES.
24/09/99

CE-6265

L25of 40

9 of 24

Assembly Language

* WHEN PROGRAM CALLS A


SUBROUTINE, IT HAS NO
WAY OF KNOWING WHICH
REGISTERS IT, WILL USE &
CANNOT ANTICIPATE THE
WAY WHICH REGITERS
MIGHT BE ALTERED.
24/09/99

CE-6265

L25of 40

10 of 24

Assembly Language

* PUSH INSTRUCTION AT BEGIN-NING OF SUBROUTINES IS


USED TO SAVE REGISTERS.

24/09/99

CE-6265

L25of 40

11 of 24

Assembly Language

CALL
INSTRUCTION

* TRANSFERS CONTROL TO
SUBROUTINE.
* TRY TO WRITE
PROCEDURES WHICH
TIGHTLY ORGANIZED.
24/09/99

CE-6265

L25of 40

12of 24

Assembly Language

SYNTAX OF
CALL INSTRUCTION

* INCLUDE A VERSION OF CALLS


TO NEAR PROCEDURES, WHICH
ARE IN CURRENT CODE
SEGMENT, & FOR PROCEDURES
LOCATED IN OTHER SEGMENTS.
24/09/99

CE-6265

L25of 40

13 of 24

Assembly Language

CALL NEAR-PROCEDURE
CALL FAR-PROCEDURE.
NEW PROCEDURE:- IP IS
INCREMENTED SO THAT IT
POINTS TO THE NEXT
INSTRUCTION, & THEN PUSHED
ON THE
24/09/99 STACK.
CE-6265

L25of 40

14of 24

Assembly Language

FAR PROCEDURE:CS IS PUSHED ON STACK,


FOLLOWED BY IP. THEN THE
SUBROUTINE SEGMENT ADDRESS
IS MOVED TO CS & OFFSET IS
MOVED
TO
IP.
24/09/99
CE-6265 L25of 40
15 of 24

Assembly Language

EXTERNAL PROCEDURE:PROCEDURE LOCATED


IN ANOTHER PROGRAM
MODULE.
24/09/99

CE-6265

L25of 40

16 of 246

Assembly Language

EXAMPLE OF CALL INSTRUCTION


call XYZ
call near ptr abc
call far ptr mno.

24/09/99

CE-6265

L25of 40

17 of 24

Assembly Language

RET INSTRUCTION
* PLACED AT THE END OF
PROCEDURE TO RETURN
THE CPU TO CALLING
LOCATION.
* IDENTICAL TO RETURN
SEGMENT.
24/09/99

CE-6265

L25of 40

18 of 24

Assembly Language

* WHEN CALLING LOCATION IS


IN THE SAME SEGMENT, RET
POPS THE STACK INTO IP &
INCREMENTS IP. IT CAUSES
THE PROGRAM TO CONTINUE
EXECUTION AT NEW
ADDRESS IN IP.
24/09/99

CE-6265

L25of 40

19 of 24

Assembly Language

* PROCEDURE IS CALLED FROM


A SEPARATE SEGMENT, MASM
TRANSLATES THE RET
INSTRUCTION INTO THE INTEL
RETF INSTRUCTION.

24/09/99

CE-6265

L25of 40

20 of 24

Assembly Language

* IT POPS THE STACK INTO IP,


INCREMENTS SP, POPS THE
STACK INTO CS &
INCREMENTS SP.

24/09/99

CE-6265

L25of 40

21 of 24

Assembly Language

PARAMETER PASSING
* MAKS THE PROCEDURE
MORE GENERAL & VERY
IMPORTENT CONCEPT IN
ASSEMBLY LANGUAGE.
24/09/99

CE-6265

L25of 40

22 of 24

Assembly Language

* FOUR MAIN WAYS OF


PASSING PARAMETERS:# IN REGISTERS.
# IN DEDICATED
MEMORY LOCATION
ACCESSED BY NAME.
24/09/99

CE-6265

L25of 40

23of 24

Assembly Language

# WITH POINTER PASSED


IN REGISTERS.
# WITH THE STACK.

24/09/99

CE-6265

L25of 40

24 of 24

Assembly Language

PARAMETER PASSING
THROUGH REGISTERS
TITLE:- BCD TO
BINENARY CONVERSION
dosseg
.model small
27/09/99

CE-6265

L26of 40

1 of 23

Assembly Language

.Stack 100h
.code
main proc
mov ax, @ data
mov ds, ax
mov a1, BCD
Call BCDBin
mov Bin, a1

27/09/99

CE-6265

L26of 40

2 of 23

Mov ax, 4C00h


int 21h
main endp
BCDbin proc
pushf
push bx
push cx
mov b1, a1
27/09/99

CE-6265

Assembly Language

L26of 40

3 of 23

and b1, 0fh


and a1, of0h
mov c1,04
ror a1, c1
mov bh, Oah
mul bh
add a1, b1
pop cx
27/09/99

CE-6265

Assembly Language

L26of 40

4 of 23

Assembly
Popf
ret
BCDbin endp

Language

.data
bcd db 17h
bin db ?
End main
27/09/99

CE-6265

L26of 40

5 of 23

Assembly Language

PASSING PARAMETERS
USING POINTERS
TITLE:- BCD TO BINARY
CONVERSION.
dosseg
27/09/99

CE-6265

L26of 40

6 of 23

Assembly Language

.model small
.stack 100h
.code
main proc
mov ax, @ data
mov ds, ax
mov si, offset BCD
mov di, offset bin
27/09/99

CE-6265

L26of 40

7 of 23

Assembly
Call bcdbin
mov ax, 4C00h
int 21h
main endp
bcdbin proc near
pushf
push ax
push bx
27/09/99

CE-6265

L26of 40

Language

8of 23

Push cx Assembly
mov a1,[si]
mov a1,b1
and b1, Ofh
and a1, OFOh
mov c1, 04
ror a1,c1
mul bh
27/09/99

CE-6265

L26of 40

Language

9 of 23

Assembly Language

.data
bcd db 15h
bin db
?
End main

27/09/99

CE-6265

L26of 40

10 of 23

Add a1,b1
mov[di], a1
pop cx
pop bx
pop ax
popf
ret
bcdbin endp
27/09/99

CE-6265

Assembly Language

L26of 40

11of 23

Programming

ADVANCED
ASSEMBLY
LANGUAGE
TECHNIQUES
27/09/99

CE-6265

L26of 40

12 of 23

Programming

OBJECTIVES:-----1) DEVELOP SOFTWARE THAT


ACCESSES ANOTHER
APPLICATION THROUGH THE
DOS EXEC FUNCTION .
27/09/99

CE-6265

L26of 40

13 of 23

Programming

2) EXPLAIN THE OPERATION OF &


ACCESS TO EXPANDED & EXTE-NDED MEMORY USING EMS,XMS,
VCPI AND DPMI .
27/09/99

CE-6265

L26of 40

14 of 23

Programming

3) DEVELOP APPLICATION USES


EXTENDED MEMORY .
4) DETAIL PURPOSE OF IOCTL .
5) DEVELOP A DEVICE DRIVER
FOR DOS APPLICATION .
27/09/99

CE-6265

L26of 40

15 of 23

Programming

6) EXPLAIN HOW A PROGRAM


CAN MAKE SWITCH TO
PROTECTED MODE OPERATION .

27/09/99

CE-6265

L26of 40

16 of 23

Programming

7) DEVELOP A PROTECTED - MODE


APPLICATION THAT ACCESSES
EXTENDED MEMORY.

27/09/99

CE-6265

L26of 40

17 of 23

Programming

8) SHOW HOW A INTERFACE ASS-EMBLY LANGUAGE TO C / C++,


BASIC , PASCAL & FORTRAN .

27/09/99

CE-6265

L26of 40

18 of 23

Programming

USING DOS EXEC TO


EXECUTE A PROGRAM

* FUNCTION ACCESSED VIA DOS


INT 21H .
* ALLOWS ONE ASSEMBLY
LANGUAGE PROGRAM TO
EXECUTE ANOTHER PROGRAM .
27/09/99

CE-6265

L26of 40

19 of 23

Programming

* LOAD ANOTHER PROGRAM


WITHOUT EXECUTING IT .
* LOAD A FILE AS PROGRAM
OVERLAY .
27/09/99

CE-6265

L26of 40

20 of 23

Programming

* PROGRAM THAT USES EXEC


FUNCTION TO LOAD Or
EXECUTES ANOTHER PROGRAM
IS CALLED PARENT.
27/09/99

CE-6265

L26of 40

21 of 23

Programming

* THE PROGRAM LOADED INTO


MEMORY BY THE PARENT AND
EXECUTES IS CALLED CHILD.
27/09/99

CE-6265

L26of 40

22 of 23

Programming

* THE PROCESS OF CREATING A


CHILD PROGRAM IN MEMORY IS
OFTEN CALLED SPAWNING.

27/09/99

CE-6265

L26of 40

23 of 23

Programming

THE EXEC FUNCTION


* TO EXECUTE ANOTHER
PROGRAM WITH THE FUNCTION
4BH , LOAD AH WITH THE 4BH &
AL WITH TYPE OF OPERATION .
27/09/99

CE-6265

L27 of 40

1 of 25

Programming

THE CHILD FILE NAME


* THE NAME OF THE CHILD
PROCESS IS STORED AS AN ASCII
- Z STRING IN MEMORY
LOCATION ADDRESSED BY DS :
DX REGISTER.
27/09/99

CE-6265

L27 of 40

2 of 25

Programming

MEMORY MANAGEMENT
DRIVERS
* EXTENDED MEMORY SYSTEMS
CANNOT BE ACCESSED WITHOUT
MEMORY MANAGEMENT
DRIVERS.
27/09/99

CE-6265

L27 of 40

3 of 25

Programming

* EMS (EXPANDED MEMORY


SYSTEM) DRIVER WAS FIRST MADE
AVAILABLE THEN XMS (EXTENDED
MEMORY SYSTEM) WAS ADDED
WITH 80286.

27/09/99

CE-6265

L27 of 40

4 of 25

Programming

* RECENTLY THE VCPI (VIRTUAL


CONTROL PROGRAM INTERFACE)
HAS BEEN ADDED TO CONTROL
MEMORY SYSTEM IN 80386 AND
ABOVE.
27/09/99

CE-6265

L27 of 40

5 of 25

Programming

* VCPI SERVICES PROVIDED BY


DOS VERSION 6.X AS A PART OF
THE EMM 386.EXE PROGRAM.

27/09/99

CE-6265

L27 of 40

6 of 25

Programming

* FINALLY, DPMI ( DOS PROTECTED


MODE INTERFACE ) PROVIDES
BEST CONTROL IF WINDOWS IS
AVAILABLE.
27/09/99

CE-6265

L27 of 40

7 of 25

EMS

Programming

* DIVIDES THE UPPER MEMORY


AREA Or SYSTEM AREA INTO
PAGE FRAME THAT BEGIN AT
ANY 4K BYTE MEMORY AND ARE
64K IN LENGTH .
27/09/99

CE-6265

L27 of 40

8 of 25

Programming

* A PAGE FRAME IS DIVIDED INTO


4 PAGES , EACH 16K IN LENGTH.
* THIS AREA OF MEMORY KNOWN
AS THE EXPANDED MEMORY.
27/09/99

CE-6265

L27 of 40

9 of 25

Programming

* EXPANDED MEMORY ALSO USED


IN 8088 - BASED PERSONAL COMP -UTER TO EXPAND MEMORY
SYSTEM.
27/09/99

CE-6265

L27 of 40

10 of 25

Programming

* THIS MEMORY EXPANSION STAN-DARD CALLED LIM 4.0 (LOTUS /


INTEL / MICROSOFT), USES INT67H
FOR ACCESSING AND CONTROL-LING MEMORY SYSTEM .

27/09/99

CE-6265

L27 of 40

11 of 25

Programming

* EMS MANAGER FOUND IN MOST


SYSTEM EMM 386. EXE DESIGNED
TO PROVIDE MEMORY MANAGE-MENT FOR 80386 AND NEWER
MICROPRCESSORS.

27/09/99

CE-6265

L27 of 40

12 of 25

Programming

* EMS IS STILL USED IN MANY


PERSONAL COMPUTERS FOR
COMPUTER VIDEO GAMES.

27/09/99

CE-6265

L27 of 40

13 of 25

Programming

* EVENTUALLY , THIS MEMORY


MANAGER WILL DISAPPEAR &
XMS MANAGER IS STRONGLY
USED IN ITS PLACE.
27/09/99

CE-6265

L27 of 40

14 of 25

Programming

XMS
* INSTALLED WITH THE HIMEM
.SYS
* DRIVER IN THE CONFIG.SYS
FILE.
27/09/99

CE-6265

L27 of 40

15 of 25

Programming

* XMS DRIVER ALLOWS ACCESS


TO EXTENDED MEMORY
SYSTEM IN PERSONAL
COMPUTER.
27/09/99

CE-6265

L27 of 40

16 of 25

Programming

* HIMEM .SYS MANAGES EXTE-NDED MEMORY SYSTEM AND


PROVIDE HIGH MEMORY TO
DOS PROGRAMS.
27/09/99

CE-6265

L27 of 40

17 of 25

Programming

* IN MOST CASES , HIGH MEMORY


USED TO LOAD DOS & UNAVAIL-ABLE FOR ANY OTHER PURPOSE.

27/09/99

CE-6265

L27 of 40

18 of 25

Programming

* MANY VIDEO GAMES & OTHER


DOS APPLICATIONS ACCESS
EXTENDED BY HIMEM . SYS.

27/09/99

CE-6265

L27 of 40

19 of 25

Programming

* XMS MANAGEMENT SOFTWARE


IS ACCESSED AT TWO PLACES :-a) AT THE DOS MULTIPLEX
INTERRUPT.
b) THROUGH AN ENTRY POINT
PROVIDED BY MULTIPLEX
INTERRUPT.
27/09/99

CE-6265

L27 of 40

20 of 25

VCPI

Programming

* ALLOWS ACCESS TO BOTH


EXTENDED AND EXPANDED
MEMORY IF DOS VERSION
6.X IS INSTALLED USING
EMM386.EXE DRIVER .
27/09/99

CE-6265

L27 of 40

21 of 25

Programming

* EXTENDED MEMORY CAN BE


USED EITHER EXTENDED
MEMORY OR EXPANDED
MEMORY IN THE VCPI .
27/09/99

CE-6265

L27 of 40

22 of 25

Programming

* BEFORE VCPI , EXPANDED


MEMORY CAN BE ALLOCATED
AS AN EXPANDED MEMORY .
* IT ALSO USES INT 67H TO
ACCESS THE DRIVER .
27/09/99

CE-6265

L27 of 40

23 of 25

Programming

DPMI
* EXTENSIVE CONTROL OF
THE PERSONAL COMPUTER
IS OBTAINED WITH THIS
MODE INTERFACE .

27/09/99

CE-6265

L27 of 40

24 of 25

Programming

* THIS INTERFACE IS PROVIDED


BY WINDOWS & IS ACCESSE TO
DOS FROM WITHIN WINDOWS.
* 77 FUNCTIONS ARE PROVIDED
BY DPMI .
27/09/99

CE-6265

L27 of 40

25 of 25

FUNCTIONS

Programming

a) CONTROL OF REAL &


EXTENDED MEMORY SYSTEM.
b) INTERRUPT MANAGEMENT

27/09/99

CE-6265

L28 of 40

1 of 21

Programming

C) PAGE TABLE MANAGEMENT


d) LOCAL DESCRIPTOR MANAGE -MENT
e) DEBUGGING
27/09/99

CE-6265

L28 of 40

2 of 21

Programming

IOCTL & DEVICE


DRIVERS
* FUNCTIONS ARE PROVIDED
BY DOS INT 21H FUNCTION
NUMBER 44H.
27/09/99

CE-6265

L28 of 40

3 of 21

Programming

* FUNCTIONS TO PROVIDE
CONTROL OF DEVICE DRIVERS
WHICH CONTROLS DEVICES
ATTACHED TO THE SYSTEM.
27/09/99

CE-6265

L28 of 40

4 of 21

Programming

* IOCTL ARE COMMONLY USED IN


THE DEVELOPMENT OF THE
DEVICE DRIVERS.

27/09/99

CE-6265

L28 of 40

5 of 21

Programming

* IOCTL INTERROGATED THE EMM


386.EXE DRIVER TO DETERMINE
WHETHER IT WAS READY TO
ACCEPT OUTPUT DATA BY USING
IOCTL FUNCTION.

27/09/99

CE-6265

L28 of 40

6 of 21

Programming

IOCTL DEVICES
* THERE ARE TWO TYPES OF
IOCTL DEVICES :----a) CHARACTER DEVICES
b) BLOCK DEVICES
27/09/99

CE-6265

L28 of 40

7 of 21

Programming

CHARACTER DEVICES
* CONTROLLED IN EITHER
BINARY Or ASCII MODE BY
THE IOCTL FUNCTIONS.
* NAMED USING DOS
CONVENTIONS EMMXXXXO.
27/09/99

CE-6265

L28 of 40

8 of 21

Programming

* TO ACCESS A CHARACTER MODE


DEVICE , IT IS OPENED WITH FILE
OPEN FUNCTION 3DH , JUST AS IF
IT WERE A DISK FILE.
27/09/99

CE-6265

L28 of 40

9 of 21

Programming

* THE IOCTL FUNCTIONS USED


PRIMARILY IN DEVELOPING
DEVICE DRIVERS.
* THE DOS INT 21H FUNCTIONS
USED TO ACCESS DEVICES SUCH
AS CON, LPT AND SO FORTH.
27/09/99

CE-6265

L28 of 40

10 of 21

Programming

BLOCK DEVICES
* TRANSFER INFORMATION
ONE BLOCK AT A TIME.
* DISK DRIVE IS MOST
COMMON BLOCK DEVICES.
27/09/99

CE-6265

L28 of 40

11 of 21

Programming

* BLOCK DEVICE , WHETHER DISK


DRIVE Or OTHER DEVICE , IS
REFERENCED THROUGH DRIVE
LETTERS.
27/09/99

CE-6265

L28 of 40

12 of 21

Programming

DEVICE DRIVERS
* SPECIAL PROGRAMS
INSTALLED BY THE
CONFIG.SYS FILE TO
CONTROL INSTALLABLE
DEVICES.
27/09/99

CE-6265

L28 of 40

13 of 21

Programming

* THUS, PERSONAL COMPUTER CAN


BE EXPANDED AT SOME FUTURE
TIME BY THE INSTALLATION OF
NEW DEVICES.
27/09/99

CE-6265

L28 of 40

14 of 21

Programming

* NEWEST DEVICE IS THE CDROM


DRIVE , WHICH IS CONTROLLED
BY A DEVICE DRIVER ADDED TO
THE SYSTEM IN THE CONFIG.SYS
FILE.

27/09/99

CE-6265

L28 of 40

15 of 21

Programming

* THIS DEVICE WAS NOT AVAILA-BLE WHEN DOS Or PERSONAL


COMPUTER WAS CREATED.
* THE DEVICE DRIVER ALLOWS IT
TO INSTALLED WITHOUT ANY
MODIFICATION TO SYSTEM
SOFTWARE.
27/09/99

CE-6265

L28 of 40

16 of 21

Programming

* THE DEVICE DRIVER IS A .COM


FILE ORGANISED IN 3 PARTS :
a) THE HEADER
b) STRATEGY PROCEDURE
c) INTERRUPT PROCEDURE
27/09/99

CE-6265

L28 of 40

17 of 21

Programming

THE

HEADER

* CONTAINS INFORMATION
THAT ALLOWS DOS TO
IDENTIFY THE DRIVER.

27/09/99

CE-6265

L28 of 40

18 of 21

Programming

* CONTAINS POINTERS THAT


ALLOWS IT TO CHAIN OTHER
DRIVERS LOADED INTO
THE SYSTEM.
* 18 BYTES IN LENGTH.
27/09/99

CE-6265

L28 of 40

19 of 21

Programming

* THE FIRST DOUBLEWORD CONT-AINS A -1 THAT INFORMS DOS


THAT , LAST DRIVER IN A CHAIN.
* IF ADDITIONAL DRIVERS ARE
ADDED , DOS INSERTS A CHAIN
ADDRESS AS A SEGMENT & OFF-SET ADDRESS.
27/09/99

CE-6265

L28 of 40

20 of 21

Programming

* THE CHAIN ADDRESS POINTS TO


THE NEXT DRIVER IN THE CHAIN
WHICH ALLOWS ADDITIONAL
DRIVERS TO BE INSTALLED AT
ANY TIME.

27/09/99

CE-6265

L28 of 40

21 of 21

Programming

THE STRATEGY
* CALLED WHEN LOADED
INTO MEMORY BY Or DOS
Or WHENEVER THE
CONTROLLED DEVICE
REQUESTS SERVICE.
27/09/99

CE-6265

L29 of 40

1 of 25

Programming

* MAIN PURPOSE IS TO SAVE THE


REQUESTS HEADER & ITS
ADDRESS FOR USE BY THE
INTERRUPT PROCEDURE.
27/09/99

CE-6265

L29 of 40

2 of 25

Programming

* REQUESTS HEADER IS USED BY


DOS TO COMMUNICATE

COMMANDS & OTHER INFORMA-

-TION TO INTERRUPT PROCEDURE.


27/09/99

CE-6265

L29 of 40

3 of 25

Programming

* IN MANY CASES , STRATEGY


PROCEDURE TRANSFER THE ADD-RESS OF REQUEST HEADER TO
MEMORY BY SAVING THE CONTE
-NTS OF ES : BX .
27/09/99

CE-6265

L29 of 40

4 of 25

Programming

* REQUEST HEADER CONTAINS


LENGTH OF REQUEST HEADER AS
FIRST BYTE BECAUSE LENGTH OF
REQUEST HEADER VARIES FROM
COMMAND TO COMMAND.
27/09/99

CE-6265

L29 of 40

5 of 25

Programming

* IN MANY CASES, STRATEGY


PROCEDURE TRANSFER THE
ADDRESS OF REQUEST HEADER
TO MEMORY BY SAVING THE
CONTENTS OF ES : BX
27/09/99

CE-6265

L29 of 40

6 of 25

Programming

* INITIALIZATION COMMAND
PASSES MESSAGE TO VIDEO DISP-LAY INDICATING THAT DRIVER
IS LOADED INTO THE SYSTEM.
27/09/99

CE-6265

L29 of 40

7 of 25

Programming

* THE MEDIA CHECK COMMAND IS


USED WITH BLOCK DEVICES TO
DETERMINE WHETHER DISK
DRIVE HAS BEEN CHANGED.
27/09/99

CE-6265

L29 of 40

8 of 25

Programming

* THE BUILD BPB COMMAND (02H)


USED WITH BLOCK DEVICES TO
BUILD THE BLOCK DEVICE PARA-METER BLOCK .
27/09/99

CE-6265

L29 of 40

9 of 25

Programming

* CONTROL READ COMMAND (03H)


FUNCTIONS WITH BOTH
BLOCK & CHARACTER DEVICES
& PROVIDES CONTROL FOR
APPLICATION .

27/09/99

CE-6265

L29 of 40

10 of 25

Programming

* OUTPUT UNTIL BUSY COMMAND


(10H) IS USED WITH CHARACTER
DEVICES SEND A STEADY DATA
TO OUTPUT, CONTINUES UNTIL
DEVICE REQUEST A STOP.

27/09/99

CE-6265

L29 of 40

11 of 25

Programming

* READ COMMAND (04H)


FUNCTIONS WITH BLOCK
& CHARACTER DEVICES USED
TO TRANSFER FROM
CONTROLLED DEVICE TO DOS .

27/09/99

CE-6265

L29 of 40

12 of 25

Programming

* THE NON - DESTRUCTIVE READ


COMMAND (05H) USED WITH
CHARACTER DEVICES TO READ
CHARACTER FROM THE DEVICE
BEFORE IT IS NEEDED.
27/09/99

CE-6265

L29 of 40

13 of 25

Programming

* THE INPUT STATUS COMMAND


(06H) USED WITH CHARACTER
DEVICES DETERMINE WHETHER
DATA ARE AVAILABLE.
27/09/99

CE-6265

L29 of 40

14 of 25

Programming

* THE INPUT FLUSH COMMAND


(07H) USED WITH CHARACTER
DEVICES TO CLEAR Or FLUSH ANY
INPUT BUFFER.
27/09/99

CE-6265

L29 of 40

15 of 25

Programming

* OUTPUT FLUSH COMMAND (0BH)


USES SAME A REQUEST HEADER
FORMAT AS INPUT AND CLEARS
DATA FROM OUTPUT DEVICE.
27/09/99

CE-6265

L29 of 40

16 of 25

Programming

* OPEN DEVICE COMMAND (0DH)


AND CLOSE DEVICE COMMAND

(OEH) USES REQUEST HEADER TO


OPEN Or CLOSE BLOCK DEVICES.
27/09/99

CE-6265

L29 of 40

17 of 25

Programming

* THE REMOVABLE MEDIA


COMMAND (0FH) FUNCTIONS WITH
BLOCK DEVICES TO DETERMINE
WHETHER IT SUPPORTS REMOV-ABLE MEDIA .
27/09/99

CE-6265

L29 of 40

18 of 25

Programming

* THE GET LOGICAL DEVICE


COMMAND (17H) & SET LOGICAL
DEVICE COMMAND APPLY TO
BLOCK DEVICES TO GET & SET
LOGICAL DEVICES .
27/09/99

CE-6265

L29 of 40

19 of 25

Programming

* WRITE COMMAND (08H) USED


WITH BLOCK AND CHARACTER
DEVICES TO WRITE DATA FROM
MEMORY BUFFER TO DEVICE
CONTROLLED BY DEVICE DRIVER

27/09/99

CE-6265

L29 of 40

20 of 25

Programming

* GENERIC IOCTL COMMAND


(13H) FUNCTIONS WITH BLOCK &
CHARACTER DEVICES & BE MADE
TO FUNCTION LIKE DOS INT 21H
FUNCTION 44H.

27/09/99

CE-6265

L29 of 40

21 of 25

Programming

INTERRUPT
PROCEDURE
* USES THE REQUEST
HEADER TO DETERMINE
THE FUNCTION REQUESTED
BY DOS.
27/09/99

CE-6265

L29 of 40

22 of 25

Programming

* ALSO PERFORMS ALL FUNCTIONS


FOR THE DEVICE DRIVER .

* IT IS NOT INTERRUPT HANDLER


BECAUSE IS CALLED BY DOS
AFTER STRATEGY CALL DURING
I/O REQUEST .
27/09/99

CE-6265

L29 of 40

23 of 25

Programming

* RESPOND TO ATLEAST INITIALIZE


DRIVER COMMAND (00H) AND
OTHER COMMANDS TO CONTROL
DEVICE OPERATED BY DEVICE
DRIVER.
27/09/99

CE-6265

L29 of 40

24 of 25

Programming

* IF COMMANDS ARE NOT IMPLEM-ENTED , DEVICE DRIVER SHOULD


PLACE 8003H INTO THE RETURN
STATUS WORD TO INDICATE THAT
COMMAND IS NOT PRESENT.

27/09/99

CE-6265

L29 of 40

25 of 25

Interfacing Memories

INTRODUCTION
TO
INTERFACING
MEMORIES
28/09/99

CE-6265

L30 of 40

1 of 21

Interfacing Memories

MEMORY
DEVICE WHICH CAN STORE
INFORMATION.

28/09/99

CE-6265

L30 of 40

2 of 21

Interfacing Memories

TYPES OF MEMORY
*STATIC RAM
*DYNAMIC RAM
28/09/99

CE-6265

L30 of 40

3 of 21

Interfacing Memories

STATIC RAM
THESE RAMS USING FLIPFLOPS, WHICH CAN STORE
DATA AS LONG AS SUPPLY
IS ON.
28/09/99

CE-6265

L30 of 40

4 of 21

Interfacing Memories

DIAGRAM OF STATIC RAM


V cc

_________
BIT LINE

BIT LINE
SELECT
LINE

28/09/99

CE-6265

L30 of 40

5 of 21

Interfacing Memories

DYNAMIC RAM
THE BASIC STRUTURE OF
DRAM CONSIST OF ONE
CAPACITOR & TRANSISTOR.
28/09/99

CE-6265

L30 of 40

6 of 21

Interfacing Memories

I/O INTERFACING
METHOD

THERE ARE TWO TYPES OF I/O


INTERFACING:*I/O MAPPED I/O
*MEMORY MAPPED I/O
28/09/99

CE-6265

L30 of 40

7 of 21

Interfacing Memories

I/O MAPPED I/O


*NOT TREATED AS MEMORY
LOCATION.
*REQUIRE 64K I/O PARTS

28/09/99

CE-6265

L30 of 40

8 of 21

Interfacing Memories

*REQUIRE 16 ADDRESS LINES.


*REQUIRE SPECIAL INSTRUCTION
SIGNALS IO/W.
*REQUIRE SPECIAL INSTRUCTION
LIKE IN/OUT TO ACCESS I/O
MODULE.
28/09/99

CE-6265

L30 of 40

9 of 21

Interfacing Memories

MEMORY MAPPED I/O


* TREATED AS MEMORY
LOCATION.
*REQUIRES 20 ADDRESS LINES.

28/09/99

CE-6265

L30 of 40

10 of 21

Interfacing Memories

* NOT REQUIRE ANY SPECIAL


INSTRUCTION.
* NOT REQUIRE SPECIAL
INSTRUCTION SIGNALS.
* CAN ACCESS IMB MEMORY
LOCATIONS.
28/09/99

CE-6265

L30 of 40

11 of 21

Interfacing Memories

ADVANTAGES OF I/O
MAPPED I/O
*PROGRAM BECOMES EASIER.
*INSTRUCTIONS ARE USUALLY
LESS THAN MEMORY TYPE
INSTRUCTIONS.
28/09/99

CE-6265

L30 of 40

12 of 21

Interfacing Memories

DISADVANTAGES OF
I/O MAPPED I/O
*LESS POWERFUL & LESS
FLEXIBLE THAN MEMORY MAPPED
I/O.
*TWO ADDITIONAL CONTROL
LINES ARE REQUIRED.
28/09/99

CE-6265

L30 of 40

13 of 21

Interfacing Memories

ADVANTAGES OF
MEMORY MAPPED I/O
*PORT ADDRESS IS 16-BITS.
*POWERFUL MEMORY TYPE
INSTRUCTIONS.
28/09/99

CE-6265

L30 of 40

14 of 21

Interfacing Memories

DISADVANTAGES OF
MEMORY MAPPED I/O
* NO. OF I/O PORTS CONNECTED
IS LIMITED.
* LONGER MEMORY TYPE
INSTRUCTIONS IS USED.
28/09/99

CE-6265

L30 of 40

15 of 21

Interfacing Memories

MEMORY DE-CODING
UNUSED ADDRESS LINES ARE
DECODED TO GENERATE CHIP
SELECT SIGNALS.
28/09/99

CE-6265

L30 of 40

16 of 217

Interfacing Memories

TYPES OF ADDRESS
DECODING
*FULLY ADDRESS DECODING

*PARTIAL ADDRESS DECODING


28/09/99

CE-6265

L30 of 40

17 of 21

Interfacing Memories

FULLY ADDRESS
DECODING
*

ALL UNUSED LINES ARE


DECODED TO GENERATE CHIP
SELECT.
* ALL UNUSED ADDRESS HAVE A
PARTICULAR VALUE.
28/09/99

CE-6265

L30 of 40

18 of 21

Interfacing Memories

* EACH LOCATION HAS A FIXED


ADDRESS.
* DURING READ, WRITE,OUTPUT,
OTHER LOCATIONS ARE NOT
AFFECTED.
* DOES NOT REDUCE THE SIZE OF
A MEMORY MODULE.
28/09/99

CE-6265

L30 of 40

19 of 21

Interfacing Memories

PARTIAL ADDRESS
DECODING
* REDUCE THE SIZE OF MEMORY
MODULE.
* VALUE OF UNDECODED
ADDRESS BIT IS DONT CARE.
28/09/99

CE-6265

L30 of 40

2 0 of 21

Interfacing Memories

* UNUSED LINES ARE NOT


DECODED TO GENERATE CHIP
SELECT.
* INEXPENCIVE AS HARDWARE IS
SIMPLE.

28/09/99

CE-6265

L30 of 40

21 of 21

Interfacing Memories

IMPORTANT
POINTS FOR MEMORY
*DECODE LOGIC FOR
INTERFACING:-

GENERATION OF I/O &MEMORY


CONTROL SIGNALS AS SHOWN IN
FIG.
28/09/99

CE-6265

L31 of 40

1 of 22

Interfacing Memories
_____

____
RD

IOR

_______
MEMR
__
M/IO

________
MEMW
_____
IOW

____
WR

28/09/99

CE-6265

L31 of 40

2 of 22

Interfacing Memories

*8086 MEMORY ACCESS ENCDING


_____
BHE A
0
0
0
1
1
0
1
1
0
1
1
0

28/09/99

D15-DO
D15-DO
D7-DO
__

CE-6265

ACTION
Access 16-bit word
Access byte
Access byte
NA
Access byte
Access byte
L31 of 40

3 of 22

Interfacing Memories

*CPU STATE FOLLOWING RESET:


CPU

CONTENTS

FLAGS
IP
CS
DS
SS
ES
QUEUE
28/09/99

CLEAR
0000
FFFF h
0000
0000
0000
EMPTY
CE-6265

L31 of 40

4 of 22

Interfacing Memories

* FOR
_____RAM INTERFACING A0
& BHE HAVE TO BE USED.

*A RAM ALWAYS STARTS


AFTER ADDRESS 003FFH.

28/09/99

CE-6265

L31 of 40

5 of 22

Interfacing Memories

DECODING OF
ADDRESSES:*FULL DECODING
*PARTIAL DECODING
*BLOCK DECODING
28/09/99

CE-6265

L31 of 40

6 of 22

Interfacing Memories

FULL DECODING:ALL UNUSED LINES


ARE USED IN FULL
DECODING.

28/09/99

CE-6265

L31 of 40

7 of 22

Interfacing Memories

DIAGRAM OF FULL
DECODING:A14
A15
A16
A19
A18
A17

EPROM

28/09/99

CE-6265

L31 of 40

8 of 22

Interfacing Memories

PARTIAL DECODING:ALL THE UNUSED


LINES ARE NOT USED.

28/09/99

CE-6265

L31 of 40

9 of 22

Interfacing Memories

DIAGRAM OF PARTIAL
DECODING:A19

28/09/99

EPROM

CE-6265

L31 of 40

10 of 22

Interfacing Memories

BLOCK DECODING:IN THIS CASE BLOCKS OF


MEMORY IS ENABLED USING
THE UNUSED LINES.

28/09/99

CE-6265

L31 of 40

11 of 22

Interfacing Memories

8086 MPU KIT MUST


HAVE FOLLOWING
FEATURES:-

* CPU WORKING AT 4.77MHZ.


* 16 kb OF EPROM FOR
STORING SYSTEM SOFTWARE.
28/09/99

CE-6265

L31 of 40

12 of 22

Interfacing Memories

* 8KB OF SRAM DEVICES TO


HAVE 32KB OF RAM.
* 8087 MATH CO-PROCESSOR IS
CONNECTED.
28/09/99

CE-6265

L31 of 40

13 of 22

Interfacing Memories

EPROM DESIGN:WHEN 8086 CPU IS RESET,ITS


VALUE IS SET TO FFFF h & IP
VALUE IS SET TO 0000H .THIS
CORRESPONDS TO PHYSICAL
ADDRESS FFFF0h.
28/09/99

CE-6265

L31 of 40

14 of 22

Interfacing Memories

EPROM TYPES :2 EPROM 8K BYTES CHIPS ARE


USED .
* FOR STORING EVEN ADDRESS
BYTES.
* FOR STORING ODD ADDRESS
BYTES.
28/09/99

CE-6265

L31 of 40

15 of 22

Interfacing Memories

USED FOR
CHIP
SELECT: A14
1
A15
A16
A17
A18
A19
28/09/99

1
1
1
1
1
CE-6265

1
1
1
1
1
1

L31 of 40

16 of 22

Interfacing Memories

16K BYTES ADDRESS: A2

A1
1

A3
A4
A5

0
0
0

1
1
1

A6

28/09/99

CE-6265

L31 of 40

17 of 22

Interfacing Memories

16K BYTES ADDRESS

28/09/99

A7
A8
A9
A10
A11
A12
A13

0
0
0
0
0
0
0

CE-6265

1
1
1
1
1
1
1
L31 of 40

18 of 22

Interfacing Memories

DIAGRAM OF
EPROM INTERFACING:EPROM-EVEN

A0-A12

___
CS

A19
A18
A17
A16
A15
A14
28/09/99

CE-6265

L31 of 40

EPORM-ODD

A0-A12

___
CS

19 of 22

Interfacing Memories

RAM DESIGN;INTERRUPT VECTOR TABLE IS


STORED IN 0000-003FFh. RAM
ADDRESSS CAN BEGIN BETWEEN
00400-F0000h.
28/09/99

CE-6265

L31 of 40

20 of 22

Interfacing Memories

RAM INTERFACING:BLOCK- A

EVEN 8KB

28/09/99

ODD 8KB

CE-6265

L31 of 40

21 of 22

Interfacing Memories

RAM INTERFACING:BLOCK- B
EVEN 8KB

28/09/99

CE-6265

ODD 8KB

L31 of 40

22 of 22

Interrupt Interfacing

INTRODUCTION
TO
INTERRUPTS
28/09/99

CE-6265

L32 of 40

1 of 31

Interrupt Interfacing

INTERRUPT
HOOKS & THE TSR
OBJECTIVES:----

1) CONTROL THE TIMER &


SPEAKER IN THE PERSONAL
COMPUTER.
28/09/99

CE-6265

L32 of 40

2 of 31

Interrupt Interfacing

2) HOOK INTO THE INTERRUPTS


FOR THE KEYBOARD & CLOCK-TICK TO PERFORM TASKS ON
THE COMPUTER.
28/09/99

CE-6265

L32 of 40

3 of 31

Interrupt Interfacing

3) DEVELOP TERMINATE & STAY


RESIDENT SOFTWARE, USING A
HOT KEY TO ACCESS A PROGRAM.

28/09/99

CE-6265

L32 of 40

4 of 31

Interrupt Interfacing

4) UNDERSTAND THE FUNCTION &


APPLICATION OF THE INTERRUPT
STRUCTURE OF THE PERSONAL
COMPUTER.
28/09/99

CE-6265

L32 of 40

5 of 31

Interrupt Interfacing

5) USE THE MOUSE IN AN


INTERRUP HOOK.
6) INSTALL AND REMOVE TSR
PROGRAMS.
28/09/99

CE-6265

L32 of 40

6 of 31

Interrupt Interfacing

INTERRUPT HOOKS
* USED TO TRAP INTO THE
INTERRUPT STRUCTURE OF
THE MICROPROCESSOR.
28/09/99

CE-6265

L32 of 40

7 of 31

Interrupt Interfacing

FOR EXAMPLE:----

KEYBOARD INTERRUPT CAN BE


HOOKED, Or INTERCEPTED, SO
THAT A SPECIAL KEYSTROKE,
CALLED A HOT KEY, CAN BE
DETECTED.
28/09/99

CE-6265

L32 of 40

8 of 31

Interrupt Interfacing

* WHENEVER HOT KEY IS TYPED,


A TERMINATE & STAY RESIDENT
(TSR) PROGRAM IS ACTIVATED
TO PERFORM A SPECIAL TASK.
28/09/99

CE-6265

L32 of 40

9 of 31

Interrupt Interfacing

EXAMPLES OF HOT KEY


SOFTWARE ARE:-----a) POP-UP CALCULATORS.
b) POP-UP CLOCKS.
28/09/99

CE-6265

L32 of 40

10 of 31

Interrupt Interfacing

LINKING TO
AN INTERRUPT
* INTERRUPTS CONTROL
ALMOST ALL I/O DEVICES
CONNECTED TO THE
PERSONAL COMPUTER
SYSTEM.
28/09/99

CE-6265

L32 of 40

1 1 of 31

Interrupt Interfacing

* CONTROLLING INTERRUPTS MUST


BE INTERCEPTED TO PERFORM
SOME ADDITIONAL TASKS FOR
I/O DEVICE Or PERSONAL COMPUTER FEATURE.
28/09/99

CE-6265

L32 of 40

12 of 31

Interrupt Interfacing

* THIS INTERCEPT ALLOWS THE


INSTALLED INTERRUPT HOOK TO
THE NORMAL INTERRUPT
SERVICE PROCEDURE.
28/09/99

CE-6265

L32 of 40

13 of 31

Interrupt Interfacing

* PROCESSING INCLUDES THE


DETECTION OF HOT KEYS Or
MACRO SEQUENCES .

28/09/99

CE-6265

L32 of 40

14 of 31

Interrupt Interfacing

* READS THE CURRENT INTERRUPT


VECTORS ADDRESS & STORES IT
IN A DOUBLEWORD MEMORY
LOCATION FOR ACCESS BY THE
NEW INTERRUPT SERVICE
PROCEDURES.

28/09/99

CE-6265

L32 of 40

15 of 31

Interrupt Interfacing

* THIS DOUBLEWORD IS ADDRESSED


BY USING THE WORD PTR TO

FORCE A WORD - SIZED TRANSFER.

28/09/99

CE-6265

L32 of 40

16 of 31

Interrupt Interfacing

* THIS INTERRUPT PROCEDURES


REPLACES THE NORMAL DIVIDE
ERROR MESSAGE WITH AN IRET
INSTRUCTION.
28/09/99

CE-6265

L32 of 40

17 of 31

Interrupt Interfacing

* IF ANY REGISTER IS CHANGED IN


THE INTERRUPT HANDLER , IT
CAUSES CATASTROPHIC RESULTS
IN THE INTERRUPTED PROGRAM.
28/09/99

CE-6265

L32 of 40

18 of 31

Interrupt Interfacing

* PREVENT CATASTROPHIC
RESULTS MAKE ALL REGISTERS
IN INTERRUPT HANDLER ARE
SAVED BEFORE THEY ARE
SAVED & RESTORED .

28/09/99

CE-6265

L32 of 40

19 of 31

Interrupt Interfacing

* INTERRUPT HOOK INTERCEPTS


THE NORMAL INTERRUPT .
* INTERRUPT MUST CONTINUED
THAT DOES NOT KEEP TIME.
28/09/99

CE-6265

L32 of 40

20 of 31

Interrupt Interfacing

HOOKING
INTO CLOCK-TICK
* INTERRUPT
EXCELLENT WAY TO TIME
EVENTS & PROGRAMS.
* CONSTANT ON ALL PERSONAL
COMPUTER SYSTEMS.
28/09/99

CE-6265

L32 of 40

21 of 31

Interrupt Interfacing

* THE CLOCK-TICK INTERRUPT


OCCURS ABOUT 18.2 TIMES A
SECOND.
* USES VECTOR 8 IN PERSONAL
COMPUTER.
28/09/99

CE-6265

L32 of 40

22of 31

Interrupt Interfacing

* WHEN INTERRUPT OCCURS, IT


PAUSES THE PROGRAM CURRENT- LY EXECUTING FOR EXECUTING
INTERRUPT SERVICE ADDRESSED
BY INTERRUPT VECTOR.
28/09/99

CE-6265

L32 of 40

23 of 31

Interrupt Interfacing

* AFTER THE INTERRUPT SERVICE


PROCEDURES EXECUTES , AN
INTERRUPT RETURN INSTRUCTION
(IRET) RESUMES THE PROGRAM
AT POINT OF INTERRUPTION.
28/09/99

CE-6265

L32 of 40

24 of 31

Interrupt Interfacing

* BEFORE PROGRAM IS WRITTEN ,


CONTROL & OPERATION OF THE
SPEAKER IN PERSONAL COMPU-TER MUST BE UNDERSTOOD.
28/09/99

CE-6265

L32 of 40

25 of 31

Interrupt Interfacing

* BEFORE HOOKING INTO THE


INTERRUPT & PROGRAMMING
HALF - HOUR / HOUR CHIME, A
PROGRAM IS WRITTEN TO
CONTROL THE SPEAKER.
28/09/99

CE-6265

L32 of 40

26 of 31

Interrupt Interfacing

* ONCE TIMER IS PROGRAMMED ,


BITS PB0 & PB1 (port B) OF 8255
PERIPHERAL CONTROLLER SET
TO PASS THROUGH THE SPEAKER
VIA NAND GATE.
28/09/99

CE-6265

L32 of 40

27 of 31

Interrupt Interfacing

* WAY TO CONTROL DURATION


OF THE TONE IS BY TIMING THE
LENGTH OF THE TONE WITH
CONTENTS OF A FEW PERSONAL
COMPUTER MEMORY LOCATION.
28/09/99

CE-6265

L32 of 40

28 of 31

Interrupt Interfacing

* TIME DELAY OF ANY LENGTH


CAN BE PRODUCED .
* FAIRLY ACCURATE .

28/09/99

CE-6265

L32 of 40

29 of 31

Interrupt Interfacing

* NOT DEPENDENT ON OPERATING


FREQUENCY OF THE COMPUTER.
* GOOD TECHNIQUE TO TIME
LONG EVENTS IN THE PERSONAL
COMPUTER.
28/09/99

CE-6265

L32 of 40

30 of 31

Interrupt Interfacing

* TERMINATE & STAY RESIDENT


(TSR) PROGRAM IS WRITTEN TO
MONITOR THE CLOCK-TICK
INTERRUPT.
28/09/99

CE-6265

L32 of 40

31 of 31

Interrupt Interfacing

HOT KEYS
* SPECIAL KEYSTROKE, Or
COMBINATIONS OF KEY
STROKES, THAT INVOKES A
TERMINATE & STAY
RESIDENT PROGRAM.
28/09/99

CE-6265

L33 of 40

1 of 29

Interrupt Interfacing

* IMPORTANT PROGRAMMING
TECHNIQUE IN INSTALLATION
OF HOT KEYS.
28/09/99

CE-6265

L33 of 40

2 of 29

Interrupt Interfacing

* THE KEYBOARD INTERRUPT


OCCURS EVERYTIME A KEY IS
PRESSED & ALLOWS ACCESS TO
ANY COMBINATION OF KEYS.
28/09/99

CE-6265

L33 of 40

3 of 29

Interrupt Interfacing

KEYBOARD OPERATION
* THE KEYBOARD CONNECTED
TO PERSONAL COMPUTER CAN
GENERATES 9 TYPES INTERR-UPT WHENEVER KEY TYPED.
28/09/99

CE-6265

L33 of 40

4 of 29

Interrupt Interfacing

* THIS INTERRUPT INTERCEPTED


TO PERFORM TASKS IN THE
COMPUTER SYSTEM.
* FEW KEYS LIKE PRINT SCREEN,
RETURN MORE THAN ONE CODE.
28/09/99

CE-6265

L33 of 40

5 of 29

Interrupt Interfacing

* WHEN INTERRUPT 9 IS INTERCEP

-TED BY TSR INTERRUPT HANDLER


READS CODE FROM I/O PORT.

28/09/99

CE-6265

L33 of 40

6 of 29

Interrupt Interfacing

* THE I/O PORT RETURNS KEY-BOARD SCAN CODE , WHICH IS


DIFFERENT FROM ASCII CHARA-CTERS OBTAINED FROM
KEYBOARD.
28/09/99

CE-6265

L33 of 40

7 of 29

Interrupt Interfacing

* IF DESIRED SCAN CODE APPEARS


AT I/O PORT, IT IS THROWN AWAY
AND PROCESSING OF HOT KEY
BEGINS.
28/09/99

CE-6265

L33 of 40

8 of 29

Interrupt Interfacing

* WHEN HOT KEY IS PROCESSED ,


TSR IS EXECUTED WHICH PROC-ESSES HOT KEY & PERFORM
SOME TASK.
28/09/99

CE-6265

L33 of 40

9 of 29

Interrupt Interfacing

* AN ADDITION TO SCAN CODE , A


HOT KEY ALSO USES THE
ALTERNATE / SHIFT KEYBOARD
DATA LOCATED AT WORD - SIZED
MEMORY LOCATION.

28/09/99

CE-6265

L33 of 40

10 of 29

Interrupt Interfacing

INSTALLING A HOT KEY


* A HOT KEY IS INSTALLED
WITH A TSR PROGRAM
AND INTERRUPT HOOKS.

28/09/99

CE-6265

L33 of 40

11 of 29

Interrupt Interfacing

* THE KEY STROKE COUNTER


PROGRAM PERMITS PRODUCTI-VITY TO BE ACCESSED IN THE

BUSINESS THAT USES COMPUTERS.


28/09/99

CE-6265

L33 of 40

12 of 29

Interrupt Interfacing

* KEY STROKE COUNTER PROGRAM


COUNTS EACH KEY STROKE AND
DISPLAYS THE COUNT WHEN THE
ALT + K KEY IS PRESSED.
28/09/99

CE-6265

L33 of 40

13 of 29

Interrupt Interfacing

* THIS PROGRAM CAN BE MODIFIED


TO KEEP TRACKS OF KEY STROKE
BY THE HOUR Or ANY OTHER TIME
UNIT.
28/09/99

CE-6265

L33 of 40

14 of 29

Interrupt Interfacing

* PROGRAM ALSO STORES THE


INSTALLATION TIME FOR SECU-RITY PURPOSES BECAUSE IF
A MACHINE IS RESET , START
TIME FOR TSR WILL BE RESET.
28/09/99

CE-6265

L33 of 40

15 of 29

Interrupt Interfacing

* PROGRAM HOOKS INTO INTER-RUPT 8 AND 9 TO COUNT KEYS.


* INTERRUPT 9 HOOK DETECTS
HOT KEY (ALT K) & COUNTS KEY
STROKE.
28/09/99

CE-6265

L33 of 40

16 of 29

Interrupt Interfacing

* WHEN HOT KEY IS DETECTED ,


18.2 Hz INTERRUPT 8 ACTIVATES
HOT KEY PROGRAM, WHICH
DISPLAYS THE KEY STROKE
COUNT & TIME OF INSTALLATION.

28/09/99

CE-6265

L33 of 40

17 of 29

Interrupt Interfacing

* THIS TYPE OF TSR IS CALLED A


POP - UP PROGRAM BECAUSE IT
POPS UP WHEN THE HOT KEYS IS
TYPED.
28/09/99

CE-6265

L33 of 40

18 of 29

Interrupt Interfacing

PASSWORD PROTECTION
TSR
* HOT KEY PROGRAM THAT ADDS
PASSWORD PROTECTION IN THE
FORM OF A TSR INTERRUPT
HOOK.
28/09/99

CE-6265

L33 of 40

19 of 29

Interrupt Interfacing

* THE KEY BOARD INTERUPT IS


INTERCEPTED TO TEST THE FOR
HOT KEY COMBINATION, WHICH
CAN BE CHANGED .
28/09/99

CE-6265

L33 of 40

20 of 29

Interrupt Interfacing

* WHEN HOT KEY IS DETECTED,


KEYBOARD INTERRUPT IS LOCKED
OUT, AND LOCKS IS SET TO
LOGIC 1
28/09/99

CE-6265

L33 of 40

21 of 29

Interrupt Interfacing

* THE CLOCK- TICK INTERRUPT


DETECTS A LOGIC 1 INLOCKS
BEGINS COMPARING DATA
WITH CONTENTS OF PASSWORD
CHARACTER

28/09/99

CE-6265

L33 of 40

22 of 29

Interrupt Interfacing

REMOVABLE TSRs
* WHEN IT IS DESIRABLE TO
REMOVE TSR AT SOME
POINT , A REMOVABLE TSR
IS USED .
28/09/99

CE-6265

L33 of 40

23 of 29

Interrupt Interfacing

* USUALLY TSR SOFTWARE REMAIN


IN MEMORY UNTIL SYSTEM IS
REBOOTED Or TURNED OFF AND
RESTARTED .
28/09/99

CE-6265

L33 of 40

24 of 29

Interrupt Interfacing

* DOS DOES NOT DIRECTLY SUPP-ORT THE REMOVAL OF A TSR.


* A REMOVABLE TSR CAN BE INST-ALLED IF DOS MULTIPLEX INTE-RRUPT IS USED.
28/09/99

CE-6265

L33 of 40

25 of 29

Interrupt Interfacing

* DOS MULTIPLEX INTERRUPT


ALLOWS TSR SOFTWARE TO
COMMUNICATE WITH OTHER TSR
SOFTWARE & ALSO ALLOWS
REMOVAL OF TSR.
28/09/99

CE-6265

L33 of 40

26 of 29

Interrupt Interfacing

* THIS SOFTWARE IS LONG,


BECAUSE IT DESCRIBES EVERY
FUNCTION REQUIRED FOR
MOST TSR SOFTWARE.
28/09/99

CE-6265

L33 of 40

27 of 29

Interrupt Interfacing

* ONCE HOT KEY IS ACTIVATED ,


CLOCK -TICK INTERRUPT CAUSES
A TIME OF DAY TO APPEAR IN
RIGHT CORNER OF SCREEN.
28/09/99

CE-6265

L33 of 40

28 of 29

Interrupt Interfacing

* THE TIME IS UPDATED EACH


MINUTE & REMAINS OF SCREEN
UNTIL ANY KEY IS TYPED .
28/09/99

CE-6265

L33 of 40

29 of 29

Multiprocessor

INTRODUCTION
TO
MULTIPROCESSOR
CONFIGURATION
28/09/99

CE-6265

L34 of 40

1 of 20

Multiprocessor

8088-BASED SYSTEMS
* THERE ARE THREE
FUNDAMENTAL MULTI-PROCESSOR CONFIGRATIONS.
28/09/99

CE-6265

L34 of 40

2 of 20

Multiprocessor

COPROCESSOR
CONFIGRATION
8086/8088 SUPPLEMENTED

WITH
COPROCESSORS THAT EXTEND
THE INSTRUCTION SET IN
DIRECTIONS THAT WILL ALLOW
NECESSARY SPECIAL COMPUTATIONS.
28/09/99

CE-6265

L34 of 40

3 of 20

8086/8088
ESC

Multiprocessor
WAKE UP COPRO--CESSOR
COPROCESSER
MONITER
--------------- 8086 OR 8088

EXECUTE 8086
INSTRUCTIONS

DEACTIVAYE
HOSTS TEST PIN &
EXECUTE OPERATION.

WAKE UP 8086/
8088
WAIT

-----------------

28/09/99

CE-6265

ACTIVATE
TEST PIN

L34 of 40

4 of 20

Multiprocessor

AN INSTRUCTION TO BE
EXECUTED BY COPROCESSOR
IS INDICATED WHEN ESC
APPEARS IN PROGRAM
SEQUENCE. IT CONTAIN AN
EXTERNAL OPERATION CODE
WHICH MADE COPROCESSOR
TO DO.
28/09/99

CE-6265

L34 of 40

5 of 20

Multiprocessor

THE COPROCESSOR SEND A


BUSY SIGNAL TO HOSTS TEST
PIN WHICH CONTINUES
PROCESSING THE
INSTRUCTION STREAM.

28/09/99

CE-6265

L34 of 40

6 of 20

Multiprocessor

WAIT INSTRUCTION IS TO
WAIT UNTIL ITS TEST PIN IS
ACTIVATED BY THE
COPROCESSOR. REPETEDLY
CHECK THE TEST PIN UNTIL
IT BECOME ACTIVATED.
28/09/99

CE-6265

L34of 40

7 of 20

Multiprocessor

CLOSELY COUPLED
CONFIGURATIONS
* TO MINIMIZE COSTS, INDEP-ENDENT TIED TO CPU TO
FORM A CLOSELY COUPLED
CONFIGURATION.
28/09/99

CE-6265

L34 of 40

8 of 20

MESSAGE
SET UP

Multiprocessor

INDEPENDENT
PROCESSOR
REQUEST
WAIT

8086/8088
INDEPENDENT
WAKE UP
WITH OUT INS.

FETCH
MESSAGE

PROGRAM
SEQUENCE OF
8086

ASSIGNE
TASK

NOTIFY
CPU

WAIT FOR READY


INERRUPT

28/09/99

CE-6265

L34 of 40

9 of 20

Multiprocessor

LOOSELY COUPLED
CONFIGURATION
* EACH CPU HAS UTS OWN BUS
CONTROL LOGIC & BUS ARBITRATION IS RESOLVED BY EXTENDING LOGIC & ADDING
EXTERNAL LOGIC.
28/09/99

CE-6265

L34 of 40

10 of 20

Multiprocessor

ADVANTAGES:* HIGH SYSTEM ACHIEVED


BY MORE THAN ONE CPU.
* SYSTEM EXPENDED IN
MODULAR FROM.
28/09/99

CE-6265

L34 of 40

11 of 20

Multiprocessor

* FALIURE IN ONE MODULE


NOT CAUSE A BREAKDOWN
OF THE ENTIRE SYSTEM.
* EACH BUS MASTER HAVE A
LOCAL BUS TO ACCESS
DEDICATED MEMORY OR
I/O DEVICES.
28/09/99

CE-6265

L34 of 40

12 of 20

Multiprocessor

BUS ACCESS
LOGIC

* EXTRA BUS CONTROL


LOGIC PROVIDED TO
RESOLVE BUS ARBITRA-TION PROBLEM.
28/09/99

CE-6265

L34 of 40

13 of 20

Multiprocessor

METHODS
1) DAISY CHAINING
2) POLLING
3) INDEPENDENT
REQUESTING.
28/09/99

CE-6265

L34 of 40

14 of 20

DAISY CHAIN
MASTER-1
METHOD
`

BAL

Multiprocessor
MASTER-2
BAL

MASTER-N

...

BAL

BAL:-BUS ACCESS
LOGIC

BUS GRANT

BUS

REQUEST

CONTROLLER
BUS BUSY

28/09/99

CE-6265

L34 of 40

15 of 20

Multiprocessor

POLLING
METHOD

MASTER-1
BAL

MASTER-2
BAL

MASTER-N

...

BAL

MODULE
ADDRESS

CONTROLLER
BUS BUSY

28/09/99

CE-6265

BUS REQUEST

L34 of 40

16 of 20

INDEPENDENT
MASTER-1
REQUESTS
METHOD
BAL

Multiprocessor
MASTER-N

MASTER-2
...
BAL

BAL

BUS GRANT-1
C
O
N
T
R
O
L
L
E
R

BUS REQUEST1
BUS GRANT-2
BUS REQUEST-2
BUS GRANT-N
BUS REQUEST-N
BUS BUSY

28/09/99

CE-6265

L34 of 40

17 of 20

Multiprocessor

MICROCOMPUTER
NETWORK
* COMMUNICATE WITH EACH

OTHER & SHARE SOME OF THE


SAME HARDWARE & SOFTWARE
RESOURCES.
28/09/99

CE-6265

L34 of 40

18 of 20

Multiprocessor

* LARGE SYSTEMS OF MICRO-COMPUTERS IS KNOWN AS


COMPUTER NETWORKS.

28/09/99

CE-6265

L34 of 40

19 of 20

Multiprocessor

COMMUNICATION
PROTOCOL
* CONTROLLING INFORMA-TION & ARANGEMENT OF
MICROCOMPUTER NETWORK.

28/09/99

CE-6265

L34 of 40

20 of 20

Multiprocessor

8087 NUMERIC DATA


PROCESSOR (NDP)
* DESIGNED TO PERFORM
ARITHMATIC OPERATIONS
EFFICIENTLY.
28/09/99

CE-6265

L35 of 40

1 of 17

Multiprocessor

* OPERATE ON THE DATA OF


INTEGER, DECIMAL &
REAL TYPES OF LENGTHS 210 BYTES.

28/09/99

CE-6265

L35 of 40

2 of 17

VSS
A14 / D14
A13 / D13
A12 / D12
A11 / D11
A10 / D10
A9 / D9
A8 / D8
A7 / D7
A6 / D6
A5 / D5
A4 / D4
A3 / D3
A2 / D2
A1 / D1
A0 / D0
NC
NC
CLK
VSS

28/09/99

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

8087
NDP

CE-6265

40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21

Multiprocessor

VCC
A15 / D15
A16 / S3
A17 / S4
A18 / S5
A19 / S6
BHE / S7
RQ / GT1
INT
RQ / GT0
NC
NC
S2
S1
S0
QS0
QS1
BUSY
READY
RESET

L35 of 40

3 of 17

Multiprocessor

NDPS DATA TYPES


* WORD INTEGER (WI)
* SHORT INTEGER (SI)
* LONG INTEGER (LI)
28/09/99

CE-6265

L35 of 40

4 of 17

Multiprocessor

* PACKED BCD (P BCD)


* SHORT REAL (SR)
* LONG REAL (LR)
* TEMPORARY REAL (TR)
28/09/99

CE-6265

L35 of 40

5 of 17

DATA
TYPES

Multiprocessor

BYTES

WI

SI

FORMAT
MAGNITUDE

S
15

MAGNITUDE

S
31

LI

0
S

MAGNITUDE

63

P BCD

10
28/09/99

0 D 17 D16
S
79 78
72

CE-6265

L35 of 40

D 1 D0
0

6 of 17

Multiprocessor

SR

S
31 30

LR
TR

8
10

23 22

63 62

52 51

79 78

28/09/99

F
64 63

CE-6265

L35 of 40

7 of 17

Multiprocessor

PROCESSOR
ARCHITECTURE

* MONITOR & CONTROL LOGIC


MAINTAINS A 6-BYTE
INSTRUCTION QUEUE.
28/09/99

CE-6265

L35 of 40

8 of 17

Multiprocessor

* TRACKS THE INSTRUCTION


EXECUTION SEQUENCE OF
THE HOST.
* INSTRUCTION CURRENTLY
EXECUTED BY HOST IS
ESC INSTRUCTION.
28/09/99

CE-6265

L35 of 40

9 of 17

Multiprocessor

* CAPTURES THE OPERAND


& OPERAND ADDRESS.
* OTHER INSTRUCTIONS ARE
IGNORED.
28/09/99

CE-6265

L35 of 40

10 of 17

Multiprocessor

* DECODES EXTERNAL OP-CODE TO PERFORM THE


SPECIFIED OPERATION.

28/09/99

CE-6265

L35 of 40

11 of 17

Multiprocessor

* THERE ARE 8 DATA


REGISTER ACCESSED AS
STACK OR RENOMLY
RELATIVE TO TOP OF STACK.
* OPERAND MAY BE POPPED
FROM THIS STACK OR
PUSHED ONTO IT.
28/09/99

CE-6265

L35 of 40

12 of 17

Multiprocessor

* TOP STACK ELEMENT IS


POINTED BY ST BITS.
* PUSH OPERATION
DECREMENTS ST BY 1 &
THEN LOADS OPERAND.

28/09/99

CE-6265

L 35 of 40

13 of 17

Multiprocessor

* POP OPERATION RETRIVES


THE TOP OF STACK & THEN
INCREMENTS ST BY 1.

28/09/99

CE-6265

L35 of 40

14 of 17

Multiprocessor

INSTRUCTION SET
8087 HAS 68 INSTRUCTIONS.
DIVIDED INTO SIX GROUPS:* DATA TRANSFER
* ARITHMATIC COMPARISON

28/09/99

CE-6265

L35 of 40

15 of 17

Multiprocessor

*TRANSCENDENTAL
*COSTANT
*PROCESSER COTROL

28/09/99

CE-6265

L35 of 40

16 of 17

Multiprocessor

*ASSEMBLER GENERATE TWO


MACHINE INSTRUCTIONS FOR
8087:# WAIT
# ESC

28/09/99

CE-6265

L35 of 40

17 of 17

Micro Controllers

MICRO
CONTROLLERS

28/09/99

CE-6265

L36 of 40

1 of 31``

INTRODUCTION
* MICROCOMPUTERS THAT
DESIGNED SPECIALLY FOR
SOME CONTROL APPLICAT-ION SUCH AS POWER
CONTROL.
28/09/99

CE-6265

L36 of 40

2 of 31

Micro Controllers

Micro Controllers

* IT IS A CHIP CONSISTING OF A
MICROPROCESSOR , MEMORY &
INPUT/ OUTPUT DEVICES .
* MICRO CONTROLLERS VARY IN
THEIR DATA HANDLING
CAPACITY .
28/09/99

CE-6265

L36 of 40

3 of 31

Micro Controllers

FEATURES
1) SMALLER - SIZED
2) LOW COST
3) LESS POWER HUNGRY
28/09/99

CE-6265

L36 of 40

4 of 31

Micro Controllers

ARCHITECTURE
* MAINLY WE USE , NEC 7800
SERIES FOR THE STUDY OF
MICROCONTROLLERS.
* IT REPRESENTS A SINGLE
CHIP MICROCOMPUTER
SERIES .
28/09/99

CE-6265

L36 of 40

5 of 31

ARCHITECTURE
OF NEC 7810

Micro Controllers

* IT CAN BE EXPLAINED BY
FOLLOWING PARTS:--1) REGISTER SET
2) MEMORY ADDRESSING
3) I/O PORTS
4) INTERVAL TIMERS
28/09/99

CE-6265

L36 of 40

6 of 31

Micro Controllers

REGISTER SET
* PROGRAM COUNTER (PC) ) AND
STACK POINTER (SP) ARE 16- BIT
REGISTERS .
* THE PSW IS AN 8-BIT PROGRAM
REGISTER.
28/09/99

CE-6265

L36 of 40

7 of 31

Micro Controllers

* IT HAS TWO SETS OF REGISTER.


THESE ARE :-1) MAIN SET
2) ALTERNATE SET
28/09/99

CE-6265

L36 of 40

8 of 31

Micro Controllers

* EACH SET INCLUDE A 16- BIT


EXTENDED ACCUMULATOR
(EA), EIGHT 8- BIT GENERAL
REGISTER.
* B - C, D - E , AND H - L USED AS
REGISTER PAIR.
28/09/99

CE-6265

L36 of 40

9 of 31

Micro Controllers

* THE V REGISTER IS KNOWN AS


VECTOR REGISTER . IT IS 8 - BIT
WIDE & USED FOR FAST
ACCESSING OF ANY 256 BYTES OF
MEMORY .

28/09/99

CE-6265

L36 of 40

10 of 31

Micro Controllers

* 256 BYTES IN YHE MEMORY


ARE ALSO KNOWN AS WORKING
REGISTERS .
* ACCESS TO WORKING
REGISTERS ARE FAST THAN
ANY MEMORY LOCATION .
28/09/99

CE-6265

L36 of 40

11 of 31

SIGNALS IN NEC 7810


PAo - PA7
PB0 - PB7
PC0 / TXD
PC1 / RXD
PC2 / SCK
NMI
INT1
PC3/T1/INT2
PC4 / TO
PC5 / C1
PC6 / Coo
PC7 / CO1
Vss
MODEL1
28/09/99

Micro Controllers

NEC
7810/11/14
(64-PIN
DIP
Or
QUIP)

CE-6265

L36 of 40

Vcc
Vdd
PD0 - PD7
PF0 - PF7
ALE
WR
RD
AVcc
VAref
ANO - AN7
AVss
RESET
Vss
12 of 31

REGISTER SET OF NEC 7810


Micro Controllers
7
0
15

PSW

PC
SP
0 15

15

EA
V
B
D
H

EA
A
C
E
L

28/09/99

CE-6265

V
B
D

A
C
E

L36 of 40

13 of 31

Micro Controllers

MEMORY ADDRESSING
* THE 7810 HAS 256 BYTES OF
INTERNAL ON - CHIP RAM.
7800 MEMBERS ALSO HAVE
8K Or 16 K BYTES OF ROM.
28/09/99

CE-6265

L36 of 40

14 of 31

Micro Controllers

* ADDRESSES CORRESSPONDING
TO THE INTERNAL RAM ARE
0FF00 H - 0FFFF H .
* ALL THE MEMORY ADDRESSES IN
7810 ARE 16 BITS WIDE .
28/09/99

CE-6265

L36 of 40

15 of 31

Micro Controllers

* IF INTERNAL RAM IS USED ,THEN


7810 CAN ACCESS A TOTAL OF
(65, 536 - 256 ) BYTES OF
EXTERNAL MEMORY .
28/09/99

CE-6265

L36 of 40

16 of 31

Micro Controllers

* IT IS NOT POSSIBLE TO USE


INTERNAL RAM ,SO ALL OF 64 K
ADDRESSES CAN BE MAPPED
ONTO EXTERNAL RAM.
28/09/99

CE-6265

L36 of 40

17 of 31

Micro Controllers

* A BIT IN

SPECIAL 8 - BIT

INTERNAL REGISTER KNOWN AS


MEMORY MAPPING REGISTERS,

CONTROL USE OF INTERNAL RAM .


28/09/99

CE-6265

L36 of 40

18 of 31

Micro Controllers

* THIS BIT CAN BE SET TO 1 TO


ENABLE USE OF INTERNAL
RAM OR RESET TO 0 TO
DISABLE INTERNAL RAM .
28/09/99

CE-6265

L36 of 40

19 of 31

Micro Controllers

I/O PORTS
* THE 7810 HAS TOTAL OF FIVE
8 - BIT PROGRAMMABLE PORTS
SUCH AS PA ,PB, PC , PD, PF .
28/09/99

CE-6265

L36 of 40

20 of 31

Micro Controllers

* INDIVIDUAL LINES OF PORTS CAN


BE PROGRAMMED AS I/O PORTS .

* PORT C CAN BE PROGRAMMED TO


OPERATE IN INPUT , OUTPUT OR
CONTROL MODE.
28/09/99

CE-6265

L36 of 40

21 of 31

Micro Controllers

* PORT D AND F SERVE A DOUBLE


DUTY.
* PORT D IS FOR MULTIPLEXING
OF 8 - BITS OF ADDRESS & DATA .
28/09/99

CE-6265

L36 of 40

22 of 31

Micro Controllers

* PORT D LINES SERVES AS LINES


AD0 - AD7 .
* PORT D CAN BE PROGRAMMED
TO SERVE AS AN 8- BIT I/O
PORT .
28/09/99

CE-6265

L36 of 40

23 of 31

Micro Controllers

* PORT F CAN BE PROGRAMMED


TO SERVE AS I / O LINES OR
TO TRANSFER 8- BIT HIGH
ORDER ADDRESS .
28/09/99

CE-6265

L36 of 40

24 of 31

Micro Controllers

* PORT D CAN BE PROGRAMMED


TO BEHAVE LIKE A7 - A15 LINES .
* WHEN LESS THAN 256 VBYTES OF
EXTERNAL MEMORY, PORT F CAN
BE USED FOR I/O OPERATION.
28/09/99

CE-6265

L36 of 40

25 of 31

Micro Controllers

* I/O PORTS STRUCTURE OF 7810 IS


HIGHLY FLEXIBLE. FLEXIBILITY
IS VERY USEFUL IN PROCESS
CONTROL & OTHER CONTROL
APPLICATION.
28/09/99

CE-6265

L36 of 40

26 of 31

Micro Controllers

INTERVAL TIMERS
* VERY POWERFUL & FLEXIBLE
SET OF TIMERS.
* USED FOR GENERATING
DELAYS, MEASURING SPEED.
28/09/99

CE-6265

L36 of 40

27 of 31

Micro Controllers

* TWO PROGRAMMABLE 8 -BIT


INTERVAL TIMERS AND ONE
MALFUNCTION 16- BIT TIMER &
EVENT TIMERS .
28/09/99

CE-6265

L36 of 40

28 of 31

Micro Controllers

ELEMENTS OF
INTERVAL TIMER

1) UP COUNTER THAT GETS


INCREMENTED BY CLOCK
PULSE .
2) A TIMER REGISTER THAT
HOLDS INTERVAL TIMER.
28/09/99

CE-6265

L36 of 40

29 of 31

Micro Controllers

3) COMPARATOR THAT CONTINU-OUSLY COMPARES OUTPUT


OF UPCOUNTER WITH THAT OF
TIMER REGISTER .
28/09/99

CE-6265

L36 of 40

30 of 31

Micro Controllers

4) IMER FLIP-FLOP CONTROLLED


BY EITHER COMPARATOR OR
BY AN INTERNAL CLOCK PULSE .
28/09/99

CE-6265

L36 of 40

31 of 31

Micro Controllers

INTEL 8051
* IT IS LATEST 8 - BIT SINGLE
CHIP MICROCOMPUTER
* IT IS MORE VERSATILE THAN
8048 SERIES.
28/09/99

CE-6265

L37 of 40

1 of 28

Micro Controllers

* IT GAINED POSITION OF 2nd


GENERATION STANDARD MICRO-CONTROLLER .
* USED FOR SIMPLE INDUSTRIAL &
COMPLEX EQUIPMENT CONTROL
28/09/99

CE-6265

L37 of 40

2 of 28

Micro Controllers

MAIN FEATURES
1) 8 BIT- CPU
2) 64K ADDRESS SPACE FOR
EXTERNAL MEMORY, WHICH
WILL BE IN ADDITION TO 256/128
BYTES OF MEMORY.

28/09/99

CE-6265

L37 of 40

3 of 28

Micro Controllers

3) 64 K ADDRESS SPACE FOR PRO-GRAM MEMORY .


4) ON - CHIP OSCILLATOR AND
CLOCK CIRCUITRY .
28/09/99

CE-6265

L37 of 40

4 of 28

Micro Controllers

5) 32 INPUT / OUTPUT LINES.


6) FOUR 8-BIT BIDIRECTIONAL I/O
PORTS CONSISTING OF
LATCH , OUTPUT DRIVER
BUFFER.
28/09/99

CE-6265

L37 of 40

5 of 28

Micro Controllers

7) IT HAS TWO 16 - BIT TIMER:


TMER 0 AND TIMER 1
8) TIMER 0 AND 1 HAVE FOUR
OPERATING MODES .
28/09/99

CE-6265

L37 of 40

6 of 28

Micro Controllers

9) FULL DUPLEX SERIAL PORT


MEANS THAT SERIAL PORT
CAN TRANSMIT & RECEIVE
DATA SIMULTANEOUSLY .
28/09/99

CE-6265

L37 of 40

7 of 28

Micro Controllers

10) IT HAS FIVE INTERRUPTS . 2 OF


THEM ARE FROM EXTERNAL
DEVICES, TWO FROM COUNTER &
ONE FROM SERIAL PORT .
28/09/99

CE-6265

L37 of 40

8 of 28

Micro Controllers

11) THE 8051 HAS 111 INSTRUCTION.


a) 49 SINGLE BYTE
b) 45 TWO - BYTE
c) 17 THREE - BYTE
28/09/99

CE-6265

L37 of 40

9 of 28

Micro Controllers

12) OPERATES WITH 12 MHZ CLOCK


13) ON SINGLE +5V SUPPLY
14) ALSO INSTRUCTIONS FOR
MULTIPLICATION & DIVISION.
28/09/99

CE-6265

L37 of 40

10 of 28

Micro Controllers

15) TAKES 1 MICRO SECOND FOR


ADDITION.
16) TAKES 4 MICRO SECOND FOR
MULTIPLICATION AND
DIVISION.
28/09/99

CE-6265

L37 of 40

11 of 28

32-BIT MP

INTRODUCTION
TO 80386
80486 &
PENTIUM
28/09/99

CE-6265

L37 of 40

12 of 28

32-BIT MP

OBJECTIVES
1) DESCRIBE FUNCTION &
PURPOSE OF EACH PROGRAM VISIBLE REGISTER IN 8086-80486
& PENTIUM MICROPROCESSOR.
2) DETAIL THE FLAG REGISTER .
28/09/99

CE-6265

L37 of 40

13 of 28

32-BIT MP

3) DETAIL OPERATION OF MEMORY


PAGING MECHANISM.

4) DESCRIBE HOW MEMORY IS


ACCESSED USING REAL-MODE
MEMORY-ADDRESSING
TECHNIQUE.
28/09/99

CE-6265

L37 of 40

14 of 28

32-BIT MP

5) DESCRIBE PROGRAM-INVISIBLE
REGISTERS FOUND IN 80286,
80386 & 80486 & PENTIUM.
6) DESCRIBE HOW MEMORY IS
ACCESSED USING PROTECTEDMODE MEMORY-ADDRESSING
TECHNIQUE.
28/09/99

CE-6265

L37 of 40

15 of 28

32-BIT MP

80386,80486 & PENTIUM


1) CONTAINS 32-BIT INTERNAL
ARCHITECTURES.
2) 8-BIT INTERNAL REGISTERS
ARE AH,AL,BH,BL,CH,CL,DH &DL.
28/09/99

CE-6265

L37 of 40

16 of 28

32-BIT MP

3) 16-BIT REGISTERS ARE AX,BX,


CX,DX,SP,BP,SI,DI,IP,FLAGS,CS,DS,
ES,SS,FS & GS.

4) 32-BIT REGISTERS ARE EAX,EBX,


ECX,EDX,ESP,EBP,EDI,ESI,EIP &
E-FLAGS.
28/09/99

CE-6265

L37 of 40

17 of 28

32-BIT MP

MULTI-PURPOSE
REGISTERS
* EAX ( ACCUMULATOR)
* EBX ( BASE-INDEX)
* ECX ( COUNT)
28/09/99

CE-6265

L37 of 40

18 of 28

32-BIT MP

* EDX ( DATA)
* EBP ( BASE POINTER)
* EDI ( DESTINATION INDEX)
* ESI ( SOURCE INDEX )
28/09/99

CE-6265

L37 of 40

19 of 28

32-BIT MP

EAX
1) REFERENCED AS A 32-BIT
REGISTER (EAX).
2) REFERNCED AS A 16-BIT
REGISTER (AX).
28/09/99

CE-6265

L37 of 40

20 of 28

32-BIT MP

3) REFERNCED AS A 8-BIT
REGISTER (AH Or AL ).
4) ACCUMULATOR IS USED FOR
INSTRUCTIONS LIKE MULTIPLIC- ATION, DIVISION &
ADJUSTMENTS.
28/09/99

CE-6265

L37 of 40

2 1 of 28

32-BIT MP

5) THIS REGISTER ALSO HOLD AN


ADDRESS TO ACCESS A LOCATION
IN THE MEMORY SYSTEM.

28/09/99

CE-6265

L37 of 40

22 of 28

32-BIT MP

EBX
1) ADDRESSABLE AS
EBX,BX,BH OR BL.
2) BX REGISTER IS USED TO
ADDRESS MEMORY IN ALL
VERSIONS.
3) CAN ALSO ADDRESS DATA.
28/09/99

CE-6265

L37 of 40

23 of 28

32-BIT MP

ECX
1) THIS REGISTER CAN HOLD
COUNT.
2) IT CAN ALSO ADDRESS
MEMORY DATA.
3) INSTRUCTIONS USING A
COUNT ARE REPEATED STRING
INSTRUCTIONS.
28/09/99

CE-6265

L37 of 40

24 of 28

32-BIT MP

EDX
1) HOLD RESULT FROM A
MULTIPLICATION &
DIVIDEND BEFORE A
DIVISION.
2) CAN ADDRESS MEMORY
DATA.
28/09/99

CE-6265

L37 of 40

25 of 28

32-BIT MP

EBP
1) POINTS TO A MEMORY
LOCATION FOR MEMORY
DATA TRANSFER.
2) ADDRESSED AS EITHER BP
Or EBP.
28/09/99

CE-6265

L37 of 40

26 of 28

32-BIT MP

EDI
1) ADDRESSES STRING
DESTINATIN DATA FOR
STRING INSTRUCTION.
2) FUNCTIONS AS A 32-BIT
(EDI) Or 16-BIT (DI) MULTI
PURPOSE REGISTERS.
28/09/99

CE-6265

L37 of 40

27 of 28

32-BIT MP

ESI
1) ADDRESSES SOURCE STRING
DATA FOR STRING
INSTRUCTIONS.
2) ADDRESSED AS 16-BIT (SI) Or
32-BIT (ESI).
28/09/99

CE-6265

L37 of 40

28 of 28

32-BIT MP

SPECIAL PURPOSE
REGISTERS
* EIP ( INSTRUCTION
POINTER )
* ESP ( STACK POINTER )
* EFLAGS
28/09/99

CE-6265

L38 of 40

1 of 30

32-BIT MP

* C (CARRY)
* P (PARITY )
* A (AUXILIARY CARRY )
* Z (ZERO )
* S (SIGN )
28/09/99

CE-6265

L38 of 40

2 of 30

32-BIT MP

* T (TRAP)
* I (INTERRUPT )
* D (DIRECTION )
* O (OVERFLOW )
28/09/99

CE-6265

L38 of 40

3 of 30

32-BIT MP

* IOPL ( INPUT/OUTPUT PRIVILEGE


LEVEL )
* NT ( NESTED TASK )
* RF ( RESUME )
* VM ( VERTUAL MODE )
28/09/99

CE-6265

L38 of 40

4 of 30

32-BIT MP

* AC ( ALIGNMENT CHECK)
* VIF ( VIRTUAL INTERRUPT )
* VIP ( VERTUAL INTERRUPT
PENDING )
* ID ( IDENTIFICATION )
28/09/99

CE-6265

L38 of 40

5 of 30

32-BIT MP

EIP
1) THIS REGISTER IS IP (16-BITS)
WHEN MICROPROCESSOR
OPERATES IN REAL MODE &
EIP (32-BITS) WHEN OPERATE IN
THE PROTECTED MODE.
28/09/99

CE-6265

L38 of 40

6 of 30

32-BIT MP

2) 8086,8088 & 80286 CONTAINS EIP


BUT 80286 OPERATE IN PROTECTED MODE.
3) INSTRUCTION POINTER CAN BE
MODIFIED WITH JUMP Or CALL
INSTRUCTION.
28/09/99

CE-6265

L38 of 40

7 of 30

32-BIT MP

ESP
1) ADDRESSES AN AREA OF
MEMORY CALLED STACK.
2) REFFERED AS SP (16-BIT )
Or ESP (32-BIT ).
28/09/99

CE-6265

L38 of 40

8 of 30

32-BIT MP

EFLAGS
1) INDICATES CONDITION OF
MICROPROCESSOR.
2) CONTROL ITS OPERATION.
28/09/99

CE-6265

L38 of 40

9 of 30

32-BIT MP

3) IT IS UPWARD COMPATIBLE
FROM 8086/8088 TO PENTIUM
MPU.
4) 8086-80286 CONTAINS FLAG
REGISTER (16-BIT ) & 80386
CONTAINS EFLAGS (32-BIT ).
28/09/99

CE-6265

L38 of 40

10 of 30

32-BIT MP

C (carry )
1) HOLD THE CARRY AFTER
ADDITION Or THE BORROW
AFTER SUBTRACTION.

28/09/99

CE-6265

L38 of 40

11 of 30

32-BIT MP

2) INDICATES ERROR
CONDITIONS AS DICTATED
BY SOME PROGRAMS &
PROCEDURES.
28/09/99

CE-6265

L38 of 40

12 of 30

32-BIT MP

P ( parity )
1) LOGIC 0 FOR ODD PARITY & A
LOGIC 1 FOR EVEN PARITY.
2) ITS FINDS LITTLE APPLICATION IN PROGRAMMING.
28/09/99

CE-6265

L38 of 40

13 of 30

32-BIT MP

3) PARITY IS COUNT OF
ONES IN A NUMBER
EXPRESSED AS EVEN Or
ODD.

28/09/99

CE-6265

L38 of 40

14 of 30

32-BIT MP

A(auxiliary carry)
1) IT IS TESTED BY DAA &
DAS INSTRUCTION.

28/09/99

CE-6265

L38 of 40

15 of 30

2) HOLDS CARRY AFTER

32-BIT MP

ADDITION OR BORROW AFTER


SUBTRACTION BETWEEN BIT
POSITIONS 3 & 4 OF THE
RESULT.
28/09/99

CE-6265

L38 of 40

16 of 30

32-BIT MP

Z (zero)
1) SHOWS THAT THE RESULT
OF AN ARITHMETIC Or LOGIC
OPERATION IS ZERO.
28/09/99

CE-6265

L38 of 40

17 of 30

32-BIT MP

2) IF Z=1, RESULT IS 0.
3) IF Z=0, RESULT IS NOT 0.

28/09/99

CE-6265

L38 of 40

18 of 30

32-BIT MP

S (sign)
1) HOLD ARITHMETIC SIGN OF
THE RESULT AFTER AN
ARITHMETIC Or LOGIC
INSTRUCTION EXECUTES.
28/09/99

CE-6265

L38 of 40

19 of 30

32-BIT MP

2) IF S=1, SIGN BIT IS SET Or


NEGATIVE.
3) IF S=0, BIT IS CLEARED Or
POSITIVE.
28/09/99

CE-6265

L38 of 40

20 of 30

32-BIT MP

T (trap)
1) ENABLES TRAPPING
THROUGH AN ON-CHIP
DEBUGGING FEATURE.

28/09/99

CE-6265

L38 of 40

21 of 30

32-BIT MP

2) IF T=1, MPU INTERRUPTS THE


FLOW OF PROGRAM AS INDIC-ATED BY DEBUG & CONTROL
REGISTERS.
3) IF T=0, THE TRAPPING (DEBUG-GING) FEATURE IS DISABLED.
28/09/99

CE-6265

L38 of 40

22 of 30

32-BIT MP

4) THE CODE VIEW PROGRAM CAN


USE THE TRAP FEATURE &
DEBUG REGISTERS TO DEBUG
FAULTY SOFTWARE.
28/09/99

CE-6265

L38 of 40

23 of 30

32-BIT MP

I (interrupt )
1) CONTROLS THE OPERATION OF
THE INTR INPUT PIN.
2) IF I=1, THE INTR PIN IS ENABLED
.
28/09/99

CE-6265

L38 of 40

24 of 30

32-BIT MP

3) IF I=0, PIN IS DISABLED.


4) STATE OF I FLAG BIT IS
CONTROLLED BY STI & CLI.
28/09/99

CE-6265

L38 of 40

25 of 30

D (direction)

32-BIT MP

1) SELECTS EITHER THE


INCREMENT Or DECREMENT
MODE FOR THE DI Or SI
REGISTERS DURING STRING
INSTRUCTIONS.
28/09/99

CE-6265

L38 of 40

26 of 30

2) IF D=1 , REGISTERS ARE


AUTOMATICALLY
DECREMENTED.

32-BIT MP

3) IF D=0, REGISTERS ARE


AUTOMATICALLY
INCREMENTED.
28/09/99

CE-6265

L38 of 40

27 of 30

32-BIT MP

4) D FLAG IS SET WITH THE STD


I NSTRUCTION.
5) D FLAG IS CLEARED WITH THE
CLD INSTUCTION.

28/09/99

CE-6265

L38 of 40

28 of 30

O (over flow)

32-BIT MP

1) OCCURS WHEN SIGNED NUMBERS


ARE ADDED Or SUBTRACTED.
2) FOR UNSIGNED OPERATION,
THIS FLAG IS IGNORED.
28/09/99

CE-6265

L38 of 40

29 of 30

32-BIT MP

3) INDICATES THAT THE RESULT


HAS EXCEEDED CAPACITY OF
MACHINE .

28/09/99

CE-6265

L38 of 40

30 of 30

IOPL

32-BIT MP

1) USED IN PROTECTED-MODE
OPERATION TO SELECT THE
PRIVILEGE LEVEL FOR I/O
DEVICES.

28/09/99

CE-6265

L39 of 40

1 of 26

32-BIT MP

2) IOPL OF 00 IS THE HIGHEST Or


MOST TRUSTED LEVEL & AN IOPL
OF 11 IS LOWEST Or LEAST
TRUSTED LEVEL.
3) IF THE CURRENT PRIVILEGE
LEVEL IS HIGHER THEN I/O
EXECUTES WITHOUT HINDRENCE
28/09/99

CE-6265

L39 of 40

2 of 26

32-BIT MP

4) IF THE IOPL IS LOWER THAN


CURRENT PRIVILEGE LEVEL,
AN INTERRUPT OUCCERS,
CAUSING EXECUTION TO
SUSPEND.
28/09/99

CE-6265

L39 of 40

3 of 26

32-BIT MP

NT
1) IT IS SET WHEN THE TASK
IS NESTED BY SOFTWARE.
28/09/99

CE-6265

L39 of 40

4 of 26

32-BIT MP

2) INDICATES THAT THE


CURRENT TASK IS NESTED
WITHIN ANOTHER IN
PROTECTED MODE
OPERATION .

28/09/99

CE-6265

L39 of 40

5 of 26

32-BIT MP

RF
1) IT IS USED WITH THE
DEBUGGING TO CONTROL THE
RESUMPTION OF EXECUTION
AFTER THE NEXT INSTRUCTION .

28/09/99

CE-6265

L39 of 40

6 of 26

32-BIT MP

VM

1) SELECTS VIRTUAL-MODE
OPERATION IN A PROTECTED
MODE SYSTEM.
28/09/99

CE-6265

L39 of 40

7 of 26

32-BIT MP

2) IT ALLOWS MULTIPLE DOS


MEMORY PARTITIONS, 1M
BYTE IN LENGTH, TO
COEXIST IN THE MEMORY
SYSTEM.

28/09/99

CE-6265

L39 of 40

8 of 26

32-BIT MP

AC
1) 80486SX MPU CONTAINS
ALLIGNMENT CHECK BIT .

28/09/99

CE-6265

L39 of 40

9 of 26

32-BIT MP

2) ACTIVATES IF A WORD Or
DOUBLE WORD IS
ADDRESSED ON A
NONWORD Or
NONDOUBLEWORD
BOUNDARY.
28/09/99

CE-6265

L39 of 40

10 of 26

32-BIT MP

VIF
1) IT IS A VIRTUAL-MODE
COPY OF THE INTERRUPT
FLAG BIT AVAILABLE TO THE
PENTIUM MPU.
28/09/99

CE-6265

L39 of 40

11 of 26

32-BIT MP

VIP
1) USED IN MULTITASKING
ENVIRONMENTS.

28/09/99

CE-6265

L39 of 40

12 of 26

32-BIT MP

2) PROVIDES INFORMATION
ABOUT A VIRTUAL-MODE
INTERRUPT FOR THE PENTIUM
MPU.
28/09/99

CE-6265

L39 of 40

13 of 26

32-BIT MP

ID
1) INDICATES THAT THE
PENTIUM MPU SUPPORTS
THE CPUID INSTRUCTION.
28/09/99

CE-6265

L39 of 40

14 of 26

2) CPUID INSTRUCTION

32-BIT MP

PROVIDES THE SYSTEM


WITH INFORMATION ABOUT
THE PENTIUM MPU.
28/09/99

CE-6265

L39 of 40

15 of 26

SEGMENT
REGISTERS

32-BIT MP

* CS (CODE SEGMENT)
* DS (DATA)
28/09/99

CE-6265

L39 of 40

16 of 26

32-BIT MP

* ES (EXTRA)
* SS (STACK)
* FS & GS

28/09/99

CE-6265

L39 of 40

17 of 26

32-BIT MP

CS
1) IT IS A SECTION OF
MEMORY THAT HOLDS THE
CODE ( programs & procedures)
USED BY THE MPU.
28/09/99

CE-6265

L39 of 40

18 of 26

32-BIT MP

2) IT DEFINES THE STARTING


ADDRESSED OF THE SECTION OF
MEMORY HOLDING CODE.
3) IN REAL-MODE OPERATION,
IT DEFINES THE START OF A 64K
BYTE SECTION OF MEMORY
.

28/09/99

CE-6265

L39 of 40

19 of 26

32-BIT MP

4) IN PROTECTED-MODE, IT
SELECTS A DESCRIPTOR THAT
DESCRIBES STARTING ADDRESS
& LENGTH OF SECTION OF
MEMORY HOLDING CODE.
5) IN PROTECTED-MODE, CODE
SEGMENT LIMITED TO 64K BYTE
28/09/99

CE-6265

L39 of 40

20 of 26

32-BIT MP

DS
1) CONTAINS MOST OF DATA
USED BY A PROGRAM.
28/09/99

CE-6265

L39 of 40

21 of 26

32-BIT MP

2) DATA ACCESSED BY AN
OFFSET ADDRESS Or BY
CONTENTS OF OTHER
REGISTER THAT HOLDS
THE OFFSET ADDRESS.

28/09/99

CE-6265

L39 of 40

22 of 26

32-BIT MP

ES
1) ADDITIONAL DATA SEGMENT
USED BY SOME OF THE STRING
INSTRUCTION TO HOLD
DESTINATION DATA.

28/09/99

CE-6265

L39 of 40

23 of 26

SS

32-BIT MP

1) DEFINES THE AREA OF MEMORY


USED FOR THE STACK.
2) LOCATION OF CURRENT ENTRY
POINT IN SS DETERM- -INED BY
SP REGISTER.
3) BP ALSO ADDRESSES DATA.
28/09/99

CE-6265

L39 of 40

24 of 26

FS & GS

32-BIT MP

1) THESE REGISTERS ARE


AVAILABLE IN THE 80386, 80486 &
PENTIUM MICROPROCESSORS
TO ALLOW TWO ADDITIONAL
MEMORY SEGMENTS FOR
ACCESS BY PROGRAMS.
28/09/99

CE-6265

L39 of 40

25 of 26

REAL MODE MEMORY

32-BIT MP

FFFF

1FFFF
OFFSET = F000
1F000
64K - BYTE
SEGMENT

SEGMENT REGISTER
1

10000

00000
28/09/99

CE-6265

L39 of 40

26 of 26

32-BIT MP

REAL-MODE MEMORY
ADDRESSING
1) OPERATES IN 8086.
2) CAN BE OPERATED WITH 8088.
3) USES CONVENTIONAL MEMORY.
28/09/99

CE-6265

L40 of 40

1 of 22

32-BIT MP

SEGMENTS & OFFSETS


* DEFINES BEGNING OF MEMORY
ADDRESS.
* OFFSET ADDRESS SELECTS ANY
ADDRESS WITHIN 64K MEMORY
SEGMENTS.
28/09/99

CE-6265

L40 of 40

2 of 22

32-BIT MP

* 16 BYTES BOUNDARY IS CALLED


PARAGRAPH.

* OFFSET ADDRESS IS ADDED TO


START OF SEGMENT ADDRESS
TO ADDRESS MEMORY LOCATION
IN MEMORY SEGMENT.
28/09/99

CE-6265

L40 of 40

3 of 22

32-BIT MP

MEMORY IN 80286 TO
PENTIUM
* EXTRA 64K MINUS 16 BYTES `OF
MEMORY IS ADDRESSABLE.
* THIS IS CALLED HIGH MEMORY.
28/09/99

CE-6265

L40 of 40

4 of 22

32-BIT MP

* ADDRESSING MODES COMBINE


MORE THAN ONE REGISTER & AN
OFFSET VALUE TO FORM AN
OFFSET ADDRESS.

* SUM OF THESE VALUES EXCEED


FFFFH .
28/09/99

CE-6265

L40 of 40

5 of 22

32-BIT MP

MEMORY PAGING
* ALLOWS PHYSICAL MEMORY
LOCATION TO BE ASSIGNED TO
ANY LINEAR ADDRESS.
* LINEAR ADDRESS IS GENERATED
BY PROGRAM.
28/09/99

CE-6265

L40 of 40

6 of 22

32-BIT MP

* LINEAR ADDRESS IS TRANSLATED


INTO PHYSICAL ADDRESS.

* APPLICATION WRITTEN AT A
SPECIFIC ADDRESS RELOCATED
THROUGH PAGING MECHANISM.

* e.g. EMM386.EXE
28/09/99

CE-6265

L40 of 40

7 of 22

32-BIT MP

*EMM386.EXE REASSIGNS EXTENDED


MEMORY IN 4K BLOCKS TO THE
SYSTEM MEMORY BETWEEN VIDEO
BIOS & SYSTEM BIOS.

* WITHOUT PAGING USE OF THIS


AREA OF MEMORY IS IMPOSSIBLE.
28/09/99

CE-6265

L40 of 40

8 of 22

32-BIT MP

PAGING REGISTERS
* USES CONTROL REGISTERS
CR0 THROUGH CR3.
* REGISTERS AVAIABLE
FROM 80386 TO PENTIUM.
28/09/99

CE-6265

L40 of 40

9 of 22

32-BIT MP

* PENTIUM CONTAINS ADDITIONAL


CR4 REGISTERS.
* IT CONTROLS EXTENSIONS.
* ONE OF THIS FEATURE IS 4MB
PAGE.
28/09/99

CE-6265

L40 of 40

10 of 22

32-BIT MP

* LEFT MOST BIT POSITION OF CR0


SELECTS PAGING WHEN AT LOGIC 1

* IF 0 , LINEAR ADDRESS BECOMES


PHYSICAL ADDRESS.

28/09/99

CE-6265

L40 of 40

11 of 22

32-BIT MP

* PAGING MECHANISM FUNCTIONS


IN REAL & PROTECTED MODE.

* CR3 CONTAIN PAGE DIRECTORY


BASE ADDRESS.

* CR3 CONTAIN PCD & PWT BITS.


28/09/99

CE-6265

L40 of 40

12 of 22

32-BIT MP

* THE PCD & PWT BITS CONTROLS


OPERATION OF PCD & PWT PINS
OF THE MICROPROCESSOR.

* IF PCD IS SET , PCD PIN BECOMES


A LOGIC 1 DURING BUS CYCLES
THAT ARE NOT PAGES.
28/09/99

CE-6265

L40 of 40

13 of 22

32-BIT MP

* PCD & PWT ALLOWS HARDWARE


TO CONTROL LEVEL 2 CACHE
MEMORY.
* PAGE DIRECTORY BASE ADDRESS
LOCATES THE PAGE DIRECTORY
FOR PAGE TRANSLATION UNIT.
28/09/99

CE-6265

L40 of 40

14 of 22

32-BIT MP

* ADDRESS LOCATES PAGE DIRECT-ORY AT ANY 4K BOUNDARY IN


THE MEMORY UNIT.

* CONTAINS 1,024 DIRECTORY


ENTRIES OF 4 BYTES EACH.
28/09/99

CE-6265

L40 of 40

15 of 22

32-BIT MP

* LINEAR ADDRESSES DIVIDED INTO


3 SECTIONS USED TO ACCESS :----a) PAGE DIRECTORY ENTRY
b) PAGE TABLE ENTRY
c) PAFE OFFSET ADDRESS
28/09/99

CE-6265

L40 of 40

16 of 22

32-BIT MP

FORMAT FOR LINEAR ADDRESS


31

22
DIRECTORY

28/09/99

21

12

11

PAGE TABLE

CE-6265

L40 of 40

0
OFFSET

17 of 22

32-BIT
PAGE DIRECTORY
OR PAGE TABLE ENTRY
31

12

ADDRESS

28/09/99

MP

6 5 4 3 2 1 0
D A P P U WP
CW
DT

CE-6265

L40 of 40

PRESENT
WRITABLE
USER DEFINED
WRITE -THROUGH
CACHE DISABLE
ACCESSED
DIRTY ( 0 in page
18 of 22directory )

32-BIT MP

PAGE DIRECTORY
* ONLY ONE PAGE DIRECTORY IN
THIS SYSTEM.
* CONTAINS 1,024 DOUBLE WORD
ADDRESSES & LOCATE UPTO 1,024
PAGE TABLE.
28/09/99

CE-6265

L40 of 40

19 of 22

* 4K BYTES IN LENGTH.

32-BIT MP

* IF 4G BYTE MEMORY IS PAGED,


SYSTEM ALLOCATE 4K BYTE OF
MEMORY FOR IT .

* REPRESENTS CONSIDERABLE
INVESTMENT IN MEMORY RESOU-RCES.
28/09/99

CE-6265

L40 of 40

20 of 22

32-BIT MP

PAGE TABLE
* 4K BYTE IN LENGTH.
* DOS SYSTEM WITH EMM386.EXE
PROGRAM USES PAGE TABLE TO
REDEFINE THE AREA OF
MEMORY.
28/09/99

CE-6265

L40 of 40

21 of 22

32-BIT MP

* IT REPAGES EXTENDED MEMORY


TO BACK FILL PART OF CONVEENTIONAL MEMORY, THUS
ALLOWING DOS ACCESS TO
ADDITIONAL MEMORY.

28/09/99

CE-6265

L40 of 40

22 of 22

You might also like