The document provides information about assembly language, including definitions, instruction formats, and the process of assembling, linking and executing an assembly language program. It defines assembly language as a language that uses symbols and letters instead of binary to represent instructions and storage locations. It also describes common instruction types like data transfer, arithmetic, logic and shift instructions. Finally, it outlines the steps to create an assembly program, which includes writing source code, assembling it, linking the object files, and executing the final executable.
1. Free Powerpoint TemplatesFree Powerpoint Templates
Assembly Language -I
Submitted to : Ms. Indu Chabbra
Submitted by : Devika Rangnekar
Rupam
Jaspreet Kaur
MCA â I (Morning)
Rollno : 9
30
15
2. Free Powerpoint Templates
Assembly Language
⢠A Language that allows instruction and
storage locations to be represented by letters
and symbols instead of binary numbers is
called Assembly Language or Symbolic
Language.
4. Free Powerpoint Templates
Instruction Set
⢠DIRECTIVE:
ď§ Also called Pseudo- Instruction
ď§ Tells assembler to perform specific action.
⢠INSTRUCTION: A set of statements that assembler
translates into object code.
⢠FORMAT for INSTRUCTION
[Identifier] Operation [Operand(s)] [;Comment]
5. Free Powerpoint Templates
Format for Instruction
⢠IDENTFIER: Name or Label that you give to a data item or an
instruction.
⢠OPERATION: reserved symbols that correspond to
instructions
⢠ex: ADD, MOV,SUB,AND, LD, LDR, âŚ
⢠OPERAND : Data on which the operation is to be
performed.
ď§ Registers -- specified by Rn, where n is the register number
ď§ Numbers -- indicated by # (decimal) or x (hex)
ď§ Label -- symbolic name of memory locations
⢠ex: ADD R1,R1,#3
6. Free Powerpoint Templates
Source and Destination
⢠Source operands can be:
â Register/Memory reference/Immediate value
⢠Destination operands can be:
â Register/Memory reference
⢠Note:
â The Intel CPU does NOT allow both source and
destination operands to be memory references
7. Free Powerpoint Templates
Examples of Instruction Set
⢠DIRECTIVE:
COUNT DB 1;
⢠INSTRUCTION:
â MOV AX, [0x00040222h]
â Can also have register names instead of hex
addresses e.g. MOV AX, [EBX]
Contents of memory
location 0x00040222
Refers to the contents of
register EBX
COUNT will define a byte with initial value 1
8. Free Powerpoint Templates
Types of Instructions
Data Transfer Instruction
Arithmetic Instruction
Logic Instruction
Shift Instruction
Rotate instruction
9. Free Powerpoint Templates
Data Transfer Instruction
PURPOSE:
to move data from source to destination
between internal register
b/w internal register and storage location in
memory
10. Free Powerpoint Templates
MNUEMONIC MEANING FORMAT OPERATION FLAGS
AFFEC
TED
MOV Move byte/word from
source operand to
destination operand
MOV D,S (S)ď (D) None
XCHG Swap data b/w 2 general
purpose reg .or a storage
location.
XCHG D,S (D) â (S) None
LEA Load Effective Address
directly from memory
LEA Reg16,EA
LEA CX,label
(EA)ď (Reg16) None
LDS Load Register and Data
Segment(DS)
LDS
Reg16,Mem32
Mem32ď Reg
16
None
Data Transfer Instructions
11. Free Powerpoint Templates
Arithmetic Instructions
PURPOSE:
⢠Addition
⢠Subtraction
⢠Multiplication
⢠Division
Results
are stored
in flags
Following
formats
⢠Unsigned binary
bytes or word
⢠Signed binary
bytes or words
12. Free Powerpoint Templates
Arithmetic Instructions
Symbol Meaning Format Operation Flags
ADD Add byte or word ADD D,S (S) + (D) ď (D)
Carry ď (CF)
OF,SF,ZF,AF,PF,
CF
ADC Add byte or word with
carry
ADC D,S (S) + (D) + (CF) ď (D)
Carry ď (CF)
OF,SF,ZF,AF,PF,
CF
INC Increment byte or word
by 1
INC D (D) + 1 ď (D) OF,SF,ZF,AF,PF
SUB Subtract SUB D,S (D) â (S) ď (D) OF,SF,ZF,AF,PF,
CF
SBB Subtract with borrow SBB D,S (D) â (S) â (CF) ď (D) OF,SF,ZF,AF,PF,
CF
DEC Decrement by 1 DEC D (D) â 1 ď (D) OF,SF,ZF,AF,PF
13. Free Powerpoint Templates
ContdâŚ
Symbol Meaning Format Operation Flag
NEG Negation NEG D (O) â (D) ď (D) OF,SF,ZF,AF,PF,
CF
MUL Multiply unsigned
bytes
MUL S (AL) . (S8) ď (AX)
(AX) . (S16) ď (DX),(AX)
OF,SF,ZF,AF,PF,
CF
Undefined
IMUL Multiplication of
signed integers
IMUL S (AL) . (S8) ď (AX)
(AX) . (S16) ď (DX),(AX)
OF,SF,ZF,AF,PF,
CF
Undefined
DIV Divide unsigned
bytes
DIV S ⢠Q((AX) / (S8) )ď (AL)
R((AX) / (S8) )ď (AH)
⢠Q((DX, AX) / (S16) )ď (AX)
R((DX, AX) / (S16) )ď (DX)
OF,SF,ZF,AF,PF,
CF
Undefined
IDIV Division of signed
integers
IDIV S ⢠Q((AX) / (S8) )ď (AX)
R((AX) / (S8) )ď (AH)
⢠Q((DX, AX) / (S16) )ď (AX)
R((DX, AX) / (S16) )ď (DX)
OF,SF,ZF,AF,PF,
CF
Undefined
15. Free Powerpoint Templates
Logic instructions
Symbol Meaning Format Operation
AND Logical AND AND D,S (S) . (D) ď (D)
OR Logical Inclusive OR OR D,S (S) + (D) ď (D)
XOR Logical Exclusive OR XOR D,S (S) + (D) ď (D)
NOT Logical NOT NOT D (D) ď (D)
EXAMPLE: Let AX=1010 BX=0111
AND BX,AX
BX=0010
1010
.0111
0010
16. Free Powerpoint Templates
Shift Instrun. Rotate Instrun.
Mnemonic Meaning Format
ROL Rotate left ROL D, count
ROR Rotate Right ROR D, count
Mnemonic Meaning Format
SAL/SHL Shift
arithmetic
left/Logical
left
SAL/SHL D,
count
SHR Shift logical
Right
SHR D, count
17. Free Powerpoint Templates
EXAMPLES
⢠SHIFT INSTUCTION
⢠SHL BH,1 ;shift 1 bit left
⢠BH :00001010
⢠OUTPUT:
⢠ROTATE INSTRUCTION
⢠ROL BH,1 ; rotate 1 bit left
⢠BH: 10110111
⢠OUTPUT:
0 0 0 0 1 0 1 0
0 0 0 1 0 1 0 0
1 0 1 1 0 1 1 1
0 1 1 0 1 1 1 1
LOST
INCLUDED
19. Free Powerpoint Templates
ARITHMETIC OPERATORS
These operators include the arithmetic signs and perform arithmetic
during the assembly.
SIGN TYPE EXAMPLE EFFECT
+ Positive +FLDA Treats FLDA as positive
- Negation -FLDA Reverses sign of FLDA
+ Addition FLDA+25 Adds 25 to address of FLDA
- Subtraction FLDB-FLDA Calculates difference between
two offset address
* Multiplication Value*3 Multiplies value by 3
/ Division Value/3 Divides value by 3
MOD Remainder Value1 MOD value2 Delivers remainder for
value1/value2
20. Free Powerpoint Templates
ďThe LOGICAL operators process the bits in an
expression.
LOGICAL OPERATORS
OPERATOR USED AS EFFECT
AND EXPR1 AND EXPR2 ANDs the bits
OR EXPR1 OR EXPR2 Ors the bits
XOR EXPR1 XOR EXPR2 Exclusive Ors the
bits
NOT EXPR1 NOT EXPR2 Reverses the bits
ďEXAMPLE:
MOV CL,00111100B AND 01010101B ; CL= 00010100B
MOV DL,NOT 01010101B ; CL=10101010B
21. Free Powerpoint Templates
High/Highword & Low/Lowword
Operators
HIGH and HIGHWORD
OPERATORS
ďHIGH operator returns
the high(leftmost) byte of
an expression.
ďHIGHWORD Operator
returns the high word of an
expression.
Example : EQUVAL EQU 1234H
Mov CL,HIGH EQUVAL
EFFECT : Load 12H in CL
LOW and LOWWORD
OPERATORS
ďLOW operator returns
the low(rightmost) byte of
an expression.
ďLOWWORD operator
returns the low word of an
expression.
Example : EQUVAL EQU 1234H
MOV CL,LOW EQUVAL
EFFECT : Load 34H in CL
23. Free Powerpoint Templates
SHL and SHR Operators
ď The operators SHL(shift left) and SHR (shift
right) shift an expression during an assembly.
ď FORMAT:
expression SHL/SHR count
ď EXAMPLE:
MOV BL,01011101B SHR 3 ; Load 00001011B
24. Free Powerpoint Templates
OFFSET OPERATOR
ď The OFFSET operator returns the offset address
of a variable or label.
ď OFFSET : the distance in bytes from the segment
address to another location within the segment.
ď CODED AS :
offset variable/label
ď EXAMPLE:
MOV DX,OFFSET PART_TBL ; return offset address of part_tbl
25. Free Powerpoint Templates
PTR OPERATOR
ď Provides flexibility to access part of a variable.
ď Can also be used to combine elements of smaller type.
ď Used to override the default type of variable.
SYNTAX:
type ptr expression
Example :
.data
Dval dword 12345678h |<------ DVAL ------- ď | ď -----------ARRAY-----ď
Array byte 00h,10h,20h,30h
.code
Mov al,dval ;error
Mov al, byte ptr dval ;al=78h
Mov ax, dval ;error
Mov ax, word ptr dval ;ax=5678h
Mov eax ,array ;error
Mov eax, dword ptr array ;eax=30201000h
78 56 34 12 00 10 20 30 40
26. Free Powerpoint Templates
DUP OPERATOR
ď USED: to generate multiple bytes or words with known as well
as un-initialized values.
ď PURPOSE: to tell the assembler to duplicate or repeat the data
definition directive a specific number of times.
ď EXAMPLE:
var1 BYTE 20 DUP(0) ; 20 bytes of zero
var2 BYTE 20 DUP(?) ; 20 bytes uninitialized
var3 BYTE 10, 3DUP(0) , 20 ; 5 bytes 10,0,0,0,20
ď The (?) with the dup means that storage allocated by the directive
is uninitialized or undefined.
ď The assembler allocates the space but does not write in it. Use ?
for buffer areas or variables your program will initialize at run
time.
27. Free Powerpoint Templates
SEG OPERATOR
ď The seg operator does two things :
1) Returns the address of the segment in which a
specified variable or label is placed.
2) It converts the type of the specified expression from
address to constant.
ď Coded As:
seg variable/label
ď Example :
MOV AX,SEG WORDA ; Get address of data seg
MOV AX,SEG A10BEGIN ; Get address of code seg
28. Free Powerpoint Templates
INDEX OPERATOR
ď Add a constant to a register to generate an offset.
ď Allows to reference a members in an array.
ď Uses square brackets[ ] and acts like a plus(+) sign.
ď Two equivalent forms:
â constant[ reg ]
â [constant + reg ]
EXAMPLE:
part_tbl DB 25 DUP(?) ;Defined table
MOV CL<PART_TBL[4] ;accessing 5th entry
MOV DX,[BX] ; offset address in base reg DS:BX
MOV[BX+SI+4],AX ;base+index+constant
29. Free Powerpoint Templates
ďThe LENGTH operator returns the number of
entries defined by a DUP operator.
ďEXAMPLE :
PART_TBL DW 10 DUP(?)
MOV DX,LENGTH PART_TBL
ďIf the referenced operand does not contain a
DUP entry, the operator returns the value 01.
LENGTH OPERATOR
30. Free Powerpoint Templates
TYPE OPERATOR
ď The TYPE operator returns the number of bytes,
according to the definition of the referenced variable.
ď CODED AS:
TYPE variable/label
DEFINITION NO. OF BYTES FOR NUMERIC VARIABLE
DB/BYTE 1
DW/WORD 2
DD/DWORD 4
DF/FWORD 8
DT/TWORD 10
STRUC/STRUCT No> of bytes defined by structure
NEAR label FFFFH
FAR label FFFFH
31. Free Powerpoint Templates
SIZE OPERATOR
ď Returns the number of bytes taken up by a structure
ď Basically, LENGTH * TYPE
ď Coded As:
SIZE variable
ď Example :
BYTEA DB? ;Define one byte
PART_TBL DW 10 DUP(?) ;Define 10 words
MOV AX,TYPE BYTEA ;AX=0001H
MOV AX,TYPE PART_TBL ;AX=0002H
MOV CX,LENGTH PART_TBL ;CX=000AH(10)
MOV DX,SIZE PART_TBL ;DX=0014H(20)
34. Free Powerpoint Templates
ASSEMBLING, LINKING AND
EXECUTING
SOURCE CODE:
The symbolic
instructions that we
code in assembly
language.
OBJECT CODE:
We use an assembler
program to translate
the source program
into machine code.
EXECUTABLE
MODULE:
Finally, using a linker,
execution of object
code.
36. Free Powerpoint Templates
EDITING A PROGRAM
After writing our program we will save it with .ASM
extension.
Although spacing is not important to the assembler, but a
program is more readable if we keep data properly aligned.
For this we can use any editor or word processing program
that produces a standard unformatted ASCII file.
37. Free Powerpoint Templates
ASSEMBLING SOURCE PROGRAM
Assembler converts source statements
into machine code and displays error
messages on the screen if any.
Typical errors include a name that
violates naming conventions, an
operation i.e. spelled incorrectly.
Optional output files from the assembly
step are OBJECT(.OBJ), LISTING(.LST)
and CROSS REFERNCE(.CRF or .SBR).
38. Free Powerpoint Templates
LINKING AN OBJECT PROGRAM
When our
program is free
from errors next
step is to link
the object
module
produced by
the assembler
and that
contains only
machine code.
Linker
combines, if
requested,
more than one
separately
assembled
module into
one executable
program.
Generates an
.EXE module
and initializes it
with special
instructions to
facilitate its
subsequent
loading for
execution.
Output files
from this step
are
EXECUTABLE(.EX
E), MAP(.MAP)
and
LIBRARY(.LIB)
39. Free Powerpoint Templates
EXECUTING A PROGRAM
⢠Having assembled and linked a program, we
can now execute it .
⢠If the .EXE file is in the default drive, you could
ask the loader to read it into memory for
execution by typing
⢠C:TASMBIN>PROG.EXE
40. Free Powerpoint Templates
STEPS TO CREATE AND RUN A
PROGRAM
Write the
source code
in a notepad
file.
Save it in
tasmbin with
.asm
extension.
Now , go to
DOS prompt.
Set the path
to tasmbin.
Write tlink
filename.asm
to link the
file.
Type filename
to run the
program.
Give the
required
input.
Name : refers to address of data item
e.g. : COUNTER DB 0 which tells that whenever COUNTER word strikes, memory will âdefine Byteâ with initial value 0
Label: refers to address of instruction, procedure, or segment
e.g. : B30: ADD BL,25
MOV : Internally, it cannot transfer data directly b/w source and destination that both resides in external memory.
Ask mam that how it operates.