Introduction to Bioinformatics - North South University

clumpfrustratedΒιοτεχνολογία

2 Οκτ 2013 (πριν από 3 χρόνια και 6 μήνες)

57 εμφανίσεις

Lecture 6

Presented By

Dr.
Shazzad

Hosain

Asst. Prof. EECS, NSU

Agenda


String Data Transfer Instructions


The Direction Flag


LODS Instructions


STOS Instructions


MOVS Instructions


INS and OUTS Instructions


More Examples

String Data Transfers


Five Instructions


LODS, STOS, MOVS, INS and OUTS


Each instruction allows data transfer either a
single byte, word or double word

The Direction Flag, DF


DF = 0, auto
-
increment mode of SI, DI


DF = 1, auto
-
decrement mode of SI, DI


CLD instruction clears the D flag (D = 0)


STD instruction sets the D flag (D = 1)


SI (Source Index) points to DS (Data Segment) i.e. DS:[SI]


DI (Destination Index) points to ES (Extra Segment) i.e. ES:[DI]

LODS Instructions


LODS instructions loads AL, AX or EAX with
data indexed by SI register


LODSB


load string byte

Table
4
-
10
: from
Brey’s

book

Example

STRING1

DB

‘ABC’


MOV

AX, @DATA


MOV

DS, AX


LEA

SI, STRING1

CLD

LODSB

LODSB

STOS Instructions


STOS instructions stores data form AL, AX or
EAX to memory indexed by DI register


STOSB


store string byte

Table 4
-
11: from
Brey’s

book

Example

STRING1

DB

‘HELLO’


MOV

AX, @DATA

MOV

ES, AX

LEA

DI, STRING1

CLD

MOV

AL, ‘A’

STOSB

STOSB

REP (Repeat Prefix))


REP is used to execute string instructions
repeatedly by CX times.


REP automatically decrements CX by 1


REP works for any string instructions except
LODS instruction

Example : Clear the video text display

1

2

3

80

****

1

2

25

*

*

*

5

4

3

2

1

0

a

b

c

07
H


07
H


07
H


Video display

Text memory


c


b


a


20H


20H


20H

B
800
H

Example 4
-
5: From
Brey’s

Book

MOVS Instructions


MOVSB


move string byte from one memory
location to other

Table 4
-
13 : From
Brey’s

Book

Example

.DATA

STRING1

DB ‘HELLO’

STRING1 DB 5 DUP (?)


MOV

AX, @DATA

MOV

DS, AX

MOV

ES, AX


LEA

SI, STRING1

LEA

DI, STRING2

CLD

MOVSB

MOVSB

Example: Scroll Up One Line

1

2

3

80

****

1

2

25

*

*

*

5

4

3

2

1

0

Video display

Text memory

B800H

Example
4
-
6
: From
Brey’s

Book

160

*

*

*

*

SI

DI

INS Instructions


INSB


Input String Byte, from I/O device to
memory location

Table
4
-
14
: From
Brey’s

Book

Example


Read 50 bytes of data from an I/O device whose address in
03ACH and store the data in LISTS array

Example
4
-
7
: From
Brey’s

Book

OUTS Instructions


OUTSB


Output String Byte, from string
memory location to I/O device

Table 4
-
15: From
Brey’s

Book

Example


Transfer data form memory array (ARRAY) to
an I/O device at I/O address
3
ACH

Example 4
-
8: From
Brey’s

Book

Agenda


String Data Transfer Instructions


The Direction Flag


LODS Instructions


STOS Instructions


MOVS Instructions


INS and OUTS Instructions


More Examples

Concatenate Two Input Strings

Then Display

Input String 1:

Hello

Input String 2:

World!

Concatenated String:

Hello World!

Display message
1

Read first string

Display message
2

Read second string

Concatenate the two strings

Display the result

Display message 1

Read first string

Display message 2

Read second string

Concatenate the two strings

Display the result

Display message 1

Read first string

Display message 1

Read first string

Display message 2

Read second string

Concatenate the two strings

Display the result

Display message 2

Read second string

Display message
1

Read first string

Display message
2

Read second string

Concatenate the two strings

Display the result

Concatenate the two strings

Display the result

Mid Term, Fall 2010

October 30, Saturday

At 9:00 AM to 10:30

NAC 311

References


Ch 11, Assembly Language Programming


by
Charls

Marut


Section 4
-
4, Intel Microprocessors


by
Brey