Lecture 2
Chapter 4 Requirements for coding in Assembly
Language
Chapter Outline
Assembly Language Features
Simplified segment Directive
Defining Types of data
Equate Directive
Defining Types of data
[[name
name]]
Dn
Dn
expression
expression
Name: a program that references a data item does so by
means of name
Dn (Directive): define the data item see next slide
Expression: is an operand may specify an uninitialized value
or constant value
an uninitialized value defined by item ?
EXAMPLE :
DATAX DB ?
3
Defining Types of data (Directive):
Pseudo-op
Stands for
DB
DW
DD
DQ
DT
Define Byte
Define Word
Define Doubleword
Define Quadword
Define Tenbytes
Defining Types of data -Examples
Syntax:
name
DB initial_value
Example:
ALPHA DB 4
BYT
WRD
DB ?
DW -2
a memory byte is associated with the name
ALPHA, and initialized to 4.
a memory byte is associated with the name
BYT, and uninitialized.
a memory word is associated with the
name WRD, and initialized to -2.
The decimal range is:
Unsigned representation: 0 to 255
Signed representation: -128 to 127
5
Defining Types of data Array byte
an array is a sequence of memory bytes or words.
Example:
B_ARRAY DB 10H,20H,30H
Symbol
Address
B_ARRAY
B_ARRAY+1
B_ARRAY+2
200H
201H
202H
Contents
10H
20H
30H
Defining Types of data Array word
Example:
W_ARRAY DW 1000,40,29887,329
Symbol
Address
W_ARRAY
0300H
W_ARRAY+2 0302H
W_ARRAY+4 0304H
W_ARRAY+6 0306H
Contents
1000D
40D
29887D
329D
Defining Types of data :The DUP Operator
It is possible to define arrays whose elements share a common initial
value by using the DUP (duplicate) operator.
Syntax:
[name]
Example:
DELTA DB
Dn
212 DUP (?)
GAMMA DW 100 DUP (0)
Repeat-count(exp)
creates an array of 212
uninitialized bytes.
set up an array of 100 words,
with each entry initialized to 0.
8
High and Low Bytes of a Word
WORD1
DW
1234H
high byte
WORD1+1
low byte
WORD1
Character String
ASCII codes can be initialized with a string of
characters using single quotes like PC or double quotes like PC.
Example:
LETTERS DB
=
LETTERS DB
'ABC'
41H,42H,43H
Inside a string, the assembler differentiates between upper and lower
case.
It is possible to combine characters and numbers in one definition:
Example: MSG
DB
'HELLO',0AH,0DH, '$'
10
Numeric Constant
In an assembly language program we may express data as:
Binary: bit string followed by B or b
Decimal: string of decimal digits followed by an optional D or
d
Hex: begins with a decimal digit and ends with H or h
Real : end with R and the assembler converts a given a
decimal or hex constant to floating point number
Any number may have an optional sign.
11
Numeric Constant
Number
Type
11011
1101B
64223
-21843D
1,234
1B4DH
1B4D
FFFFH
0FFFFH
decimal
binary
decimal
decimal
illegal
hex
illegal
illegal
hex
12
Named Constants - EQU (Equates)
To assign a name to a constant, we can use the EQU pseudo-op.
Syntax:
name EQU constant
Examples:
LF
EQU 0AH
MOV DL,0AH = MOV DL,LF
PROMPT EQU 'Any Thing'
MSG DB 'Any Thing' = MSG DB PROMPT
Note: no memory is allocated for EQU names.
13