2.3 Assembler Directives
2.3 Assembler Directives
2.3 Assembler Directives
UNIT NO I
8086 FAMILY ASSEMBLY
LANGUAGE PROGRAMMING
2.3 ASSEMBLER DIRECTIVES
III V
20ESEC502
MICROPROCESSOR AND MICROCONTROLLER
(Common to CSE & IT)
20ESEC502
INFORMATION TECHNOLOGY SUBJECT CODE
Assembler Directives
(a) The DB directive
(b) The DW directive
(c) The DD directive
(d) The STRUCT (or STRUC) and ENDS directives (counted as one)
(e)The EQU Directive
(f)The COMMENT directive
(g)ASSUME
(h) EXTERN
(i) GLOBAL
(j) SEGMENT
(k)OFFSET
(l) PROC
(m)GROUP
(n) INCLUDE
LE O M U
N. T
.L
H
F
U
MJ
F o u
n s
n d
i o
u t
e
r
C
t
ti
h
a
s
ir n
I
m m
a n
- S ai r a
20ESEC502
INFORMATION TECHNOLOGY SUBJECT CODE
Assembler Directives
Data declaration directives:
1. DB – The DB directive is used to declare a BYTE -2-BYTE variable – A BYTE is made
up of 8 bits.
Declaration examples:
Byte1 DB 10h
Byte2 DB 255 ; 0FFh, the max. possible for a BYTE
CRLF DB 0Dh, 0Ah, 24h ;Carriage Return, terminator BYTE
U
MJ
F o u
n s
n d
i o
u t
e
r
C
t
ti
h
a
s
ir n
I
m m
a n
- S ai r a
EC8691
20ESEC502
INFORMATION TECHNOLOGY SUBJECT CODE
Assembler Directives
4. STRUCT and ENDS directives to define a structure template for grouping data items.
(1) The STRUCT directive tells the assembler that a user defined uninitialized data structure
follows. The uninitialized data structure consists of a combination of the three supported data
types. DB, DW, and DD. The labels serve as zero-based offsets into the structure. The first
element’s offset for any structure is 0. A structure element is referenced with the base “+”
operator before the element’s name.
A Structure ends by using the ENDS directive meaning END of Structure.
Syntax:
STRUCT
Structure_element_name element_data_type?
...
...
...
ENDS
LE O M U
N. T
.L
H
F
U
MJ
F o u
n s
n d
i o
u t
e
r
C
t
ti
h
a
s
ir n
I
m m
a n
- S ai r a
EC8691
20ESEC502
INFORMATION TECHNOLOGY SUBJECT CODE
Assembler Directives
Use OF STRUCT:
The STRUCT directive enables us to change the order of items in the structure when, reform
a file header and shuffle the data. Shuffle the data items in the file header and reformat the
sequence of data declaration in the STRUCT.
(5) The EQU Directive
The EQU directive is used to give name to some value or symbol. Each time the assembler
finds the given names in the program, it will replace the name with the value or a symbol.
The value can be in the range 0 through 65535 and it can be another Equate declared
anywhere above or below.
The following operators can also be used to declare an Equate:
THIS BYTE
THIS WORD
THIS DWORD
LE O M U
N. T
.L
H
F
U
MJ
F o u
n s
n d
i o
u t
e
r
C
t
ti
h
a
s
ir n
I
m m
a n
- S ai r a
EC8691
20ESEC502
INFORMATION TECHNOLOGY SUBJECT CODE
Assembler Directives
A variable – declared with a DB, DW, or DD directive – has an address and has space reserved at
that address for it in the .COM file. But an Equate does not have an address or space reserved for
it in the .COM file.
Example:
A – Byte EQU THIS BYTE
DB 10
A_ word EQU THIS WORD
DW 1000
A_ dword EQU THIS DWORD
DD 4294967295
Buffer Size EQU 1024
Buffer DB 1024 DUP (0)
Buffed_ ptr EQU $ ; actually points to the next byte after the; 1024th byte in buffer.
LE O M U
N. T
.L
H
F
U
MJ
F o u
n s
n d
i o
u t
e
r
C
t
ti
h
a
s
ir n
I
m m
a n
- S ai r a
EC8691
20ESEC502
INFORMATION TECHNOLOGY SUBJECT CODE
Assembler Directives
(6) Extern:
It is used to tell the assembler that the name or label following the directive are assembly
module. For example: if we call a procedure which is in program module assembled at a
different time from that which contains the CALL instructions ,tell the assembler that the
procedure is external the assembler will put information in the object code file so that the
linker can connect the two module together.
Example:
PROCEDURE -HERE SEGMENT
EXTERN SMART-DIVIDE: FAR ; found in the segment; PROCEDURES-HERE
PROCEDURES-HERE ENDS
(7) GLOBAL:
The GLOBAL directive can be used in place of PUBLIC directive .for a name defined in the
current assembly module; the GLOBAL directive is used to make the symbol available to
the other modules.
Example:
GLOBAL DIVISOR:
- tells the assembler that DIVISOR is a variable of type of word which is in another
assembly module or EXTERN.
LE O M U
N. T
.L
H
F
U
MJ
F o u
n s
n d
i o
u t
e
r
C
t
ti
h
a
s
ir n
I
m m
a n
- S ai r a
EC8691
20ESEC502
INFORMATION TECHNOLOGY SUBJECT CODE
Assembler Directives
(8) SEGMENT:
It is used to indicate the start of a logical segment. It is the name given to the segment. Example:
the code segment is used to indicate to the assembler the start of logical segment.
(9) PROC: (PROCEDURE)
It is used to identify the start of a procedure. It follows a name of the procedure.
After the procedure the term NEAR and FAR is used to specify the procedure
Example: SMART-DIVIDE PROC FAR identifies the start of procedure named SMART-DIVIDE
and tells the assembler that the procedure is far.
10) NAME:
It is used to give a specific name to each assembly module when program consists of several
modules.
Example: PC-BOARD used to name an assembly module which contains the instructions for
controlling a printed circuit board.
(11) INCLUDE:
It is used to tell the assembler to insert a block of source code from the named file into the current
source module. This shortens the source module. An alternative is use of editor block command to
copy the file into the current source module.
LE O M U
N. T
.L
H
F
U
MJ
F o u
n s
n d
i o
u t
e
r
C
t
ti
h
a
s
ir n
I
m m
a n
- S ai r a
EC8691
20ESEC502
INFORMATION TECHNOLOGY SUBJECT CODE
Assembler Directives
( (12) OFFSET:
It is an operator which tells the assembler to determine the offset or displacement of a named data
item from the start of the segment which contains it. It is used to load the offset of a variable into a
register so that variable can be accessed with one of the addressed modes.
Example: when the assembler read MOV BX.OFFSET PRICES, it will determine the offset of the
prices.
(13) GROUP:
It can be used to tell the assembler to group the logical segments named after the directive into one
logical group. This allows the contents of all he segments to be accessed from the same group.
Example: SMALL-SYSTEM GROUP CODE, DATA, STACK-SEG.
LE O M U
N. T
.L
H
F
U
MJ
F o u
n s
n d
i o
u t
e
r
C
t
ti
h
a
s
ir n
I
m m
a n
- S ai r a
SUBJECT CODE