lecture 6 string operations

Post on 15-Feb-2016

32 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Lecture 6 String Operations. Modified and Presented By Dr. Rajesh Palit Asst. Professor, EECS, NSU Originally Prepared By Dr. Shazzad Hosain , EECS, NSU. Agenda. String Data Transfer Instructions The Direction Flag LODS Instructions STOS Instructions MOVS Instructions - PowerPoint PPT Presentation

TRANSCRIPT

Lecture 6

String Operations

Modified and Presented ByDr. Rajesh Palit

Asst. Professor, EECS, NSUOriginally Prepared By

Dr. Shazzad Hosain, 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, @DATAMOV DS, AXLEA SI, STRING1CLDLODSBLODSB

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, @DATAMOV ES, AXLEA DI, STRING1CLDMOV AL, ‘A’STOSBSTOSB

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 display1 2 3 80****

12

25

***

543210

a b c

07H

07H

07H

Video display

Text memory

c

b

a

20H

20H

20H B800H

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

.DATASTRING1 DB ‘HELLO’STRING1 DB 5 DUP (?)

MOV AX, @DATAMOV DS, AXMOV ES, AX

LEA SI, STRING1LEA DI, STRING2CLDMOVSBMOVSB

Example: Scroll Up One Line1 2 3 80****

12

25

***

543210

Video display

Text memoryB800H

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 3ACH

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 StringsThen 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 1Read first stringDisplay message 2Read second stringConcatenate the two stringsDisplay the result

Display message 1Read first string

Display message 1Read first stringDisplay message 2Read second stringConcatenate the two stringsDisplay the result

Display message 2Read second string

Display message 1Read first stringDisplay message 2Read second stringConcatenate the two stringsDisplay the result

Concatenate the two stringsDisplay the result

References

• Ch 11, Assembly Language Programming – by Charles Marut

• Section 4-4, Intel Microprocessors – by Brey

top related