You are on page 1of 22

Back to Assembly lang

name

operation
operand(s)
;comment

START: MOV

CX, 5

name

operation
operand(s)
;comment

Okay letters, digits, ?, ., @, _,


$, %
Illegal names
-

If
If
If
If

any blanks aaa aaa


begin with a digit 2asad
. not first char. aq.12
has illegal char aa&bb

name

operation
operand(s)
;comment

For an Instruction: Symbolic


operation code [opcode]:
Assembler translates these codes into
Machine lang opcode.
MOV, ADD, SUB,
For an Directive: pseudo-operation
code pseudo-op, do not translate
PROC is used to create a
procedure

name

operation
operand(s)
;comment

An instruction may have 0/1/2


operands
e.g.,
NOP
; no operands does
nothing
INC AX ; 1 op. adds 1 to contents of AX
ADD destination, source

4.2 Program data


Binary 1011b, 1100B
Decimal 10111, 10111d, -3419D
1,23 x
Hex start with a decimal digit, ends
with H 3BA3H, 0FFFFH
Characters within aa or aa

Pseudo-ops
DB define data BYTE
DW word
DD doubleword two consecutive
words
DQ quadword 4
DT tenbytes 10

4.3 Variables
name
name

operation
operand(s)
;comment
DB initial value ; -128
~ 127; or 0-255

e.g.,
ALPHA DB 4 ; variable
ALPHA=4
AA
DB ? ; uninitialized byte

4.3.3 Array
EktaArray

DB

10H, 20H, 22H

Symbol Address
Contents
EktaArray
200h
10H
EktaArray+1
201h
20H
EktaArray+2
202h
22H

For DW 2 bytes

Symbol Address
Contents
EktaArray
200h
10H
EktaArray+2
202h
20H
EktaArray+4
204h
22H

WORD1

DW

1234H

; low Byte of WORD1 contains


34H
; high Byte of WORD1 contains
12H

4.5 basic instructions


MOV move; contents of destination
is replaced by the contents of source
XCHG exchange; swapping
Q: exa??

ADD
W1, AX
;W1 = W1 + AX
;W1 changes with added/sum
value
;AX unchanged
SUB
AX, DX
;Subtract DX from AX
;New value in AX AX changes
; DX unchanged

Direct ADD/SUB between memory


locations WRONG!
ADD W1, W2
; wrong as direct memory location

Source
Destination
General Reg.
Memory loc.
Gen Reg.
Yes
Yes
Memory Loc.
Yes
NO
Constant
Yes
Yes

INC
Increment
INC
INC

destination
W1
;e.g., W1=0003

Before
W1=0003
After INC,
W1=????
0004

DEC
Decrement
DEC
DEC

destination
W1
;e.g., W1=FFFF

Before
W1=FFFF
After INC,
W1=????
FFFE

NEG
negate the contents of destination
NEGdestination

; reg. / mem.

; replace the contents by its twos complement

NEG W1 ;e.g., W1=0002


Before W1=0002
After NEG, W1=????

FFFE

Note:
- Both types MUST be the same type
e.g.,
MOV
AH, A ; what is in AH?
; A = 41H
41H
MOV
AX, A ; what is in AX?
0041
H

Do!
High- to Assembly
1. B = A
2. A = 5 A
3. A = B 2 x A

1. B = A
MOV
MOV

AX, A
B, AX

A direct mem-to-mem move is illegal

2. A = 5 - A
MOV
SUB
MOV
NEG
ADD

AX, 5
AX, A
A, AX
A
A, 5

3. A = B 2xA
MOV
SUB
SUB

AX, B ;AX = B
AX, A ;AX=B-A
AX, A ;AX=B-A A
; AX = B 2A

MOV

A, AX ; A = AX = B 2A

You might also like