Top Banner
Lecture 6 Presented By Dr. Shazzad Hosain Asst. Prof. EECS, NSU
24

Lecture 6

Jan 15, 2016

Download

Documents

Janae

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 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lecture 6

Lecture 6

Presented ByDr. Shazzad Hosain

Asst. Prof. EECS, NSU

Page 2: Lecture 6

Agenda

• String Data Transfer Instructions– The Direction Flag– LODS Instructions– STOS Instructions– MOVS Instructions– INS and OUTS Instructions

• More Examples

Page 3: Lecture 6

String Data Transfers

• Five Instructions– LODS, STOS, MOVS, INS and OUTS

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

Page 4: Lecture 6

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]

Page 5: Lecture 6

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

Page 6: Lecture 6

Example

STRING1 DB ‘ABC’

MOV AX, @DATAMOV DS, AXLEA SI, STRING1CLDLODSBLODSB

Page 7: Lecture 6

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

Page 8: Lecture 6

Example

STRING1 DB ‘HELLO’

MOV AX, @DATAMOV ES, AXLEA DI, STRING1CLDMOV AL, ‘A’STOSBSTOSB

Page 9: Lecture 6

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

Page 10: Lecture 6

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

Page 11: Lecture 6

MOVS Instructions

• MOVSB – move string byte from one memory location to other

Table 4-13 : From Brey’s Book

Page 12: Lecture 6

Example

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

MOV AX, @DATAMOV DS, AXMOV ES, AX

LEA SI, STRING1LEA DI, STRING2CLDMOVSBMOVSB

Page 13: Lecture 6

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

Page 14: Lecture 6

INS Instructions

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

Table 4-14: From Brey’s Book

Page 15: Lecture 6

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

Page 16: Lecture 6

OUTS Instructions

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

Table 4-15: From Brey’s Book

Page 17: Lecture 6

Example

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

Example 4-8: From Brey’s Book

Page 18: Lecture 6

Agenda

• String Data Transfer Instructions– The Direction Flag– LODS Instructions– STOS Instructions– MOVS Instructions– INS and OUTS Instructions

• More Examples

Page 19: Lecture 6

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

Page 20: Lecture 6

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

Display message 1Read first string

Page 21: Lecture 6

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

Display message 2Read second string

Page 22: Lecture 6

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

Concatenate the two stringsDisplay the result

Page 23: Lecture 6

Mid Term, Fall 2010October 30, SaturdayAt 9:00 AM to 10:30

NAC 311

Page 24: Lecture 6

References

• Ch 11, Assembly Language Programming – by Charls Marut

• Section 4-4, Intel Microprocessors – by Brey