Presentation is loading. Please wait.

Presentation is loading. Please wait.

Topic – string – Ch. 11 [Marut] Ch. 4 [Brey] String Data Transfer Instructions – The Direction Flag – LODS Instructions – STOS Instructions – MOVS Instructions.

Similar presentations


Presentation on theme: "Topic – string – Ch. 11 [Marut] Ch. 4 [Brey] String Data Transfer Instructions – The Direction Flag – LODS Instructions – STOS Instructions – MOVS Instructions."— Presentation transcript:

1 Topic – string – Ch. 11 [Marut] Ch. 4 [Brey] String Data Transfer Instructions – The Direction Flag – LODS Instructions – STOS Instructions – MOVS Instructions Few Examples

2 String Data Transfers 8086 – string  a byte or word array What is array? Need – register indirect addressing mode Allow mem2mem operations Five Instructions – LODS, STOS, MOVS, INS and OUTS Each instruction allows data transfer either a single byte, word or double word

3 Flags - recap 6 status flags 3 control flags – to control Processor’s ops.  Direction flag [DF]: to determine the direction in which string operations will proceed. By 2 index registers – Si and DI

4 Recap – ch. 3 write on board SP, BP, SI and DI – point to [contain the offset addresses of] mem locations. SP – stack pointer BP – base pointer SI – source index register is used to point to mem locations in the data segment addressed by DS [DS is one of the Segment registers – CS-code/DS- data/SS-stack/ES-extra segment] DI – Destination index – same as DI. Esp. for string ops that use DI to access memory locations addressed by ES.

5 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) – clears direction flag STD instruction sets the D flag (D = 1) – sets DF CLD, STD have no effect on other flags SI (Source Index) points to DS (Data Segment) i.e., DS:[SI] DI (Destination Index) points to ES (Extra Segment) i.e., ES:[DI]

6 LODS Instructions LODS instructions loads AL [with a Byte], AX [with a Word] or EAX [with a Boubleword] with data indexed by SI register [EAX for 80386/+] LODSB – load string byte LODSW – load string doubleword Table 4-10: from Brey’s book

7 Example STRING1 DB‘ABC’ MOV AX, @DATA MOV DS, AX LEA SI, STRING1 CLD LODSB Read

8 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

9 Example STRING1 DB‘HELLO’ MOV AX, @DATA MOV ES, AX LEA DI, STRING1 CLD MOV AL, ‘A’ STOSB Read

10 MOVS Instructions MOVS – move string from one memory location to other Table 4-13 : From Brey’s Book

11 Example.DATA STRING1DB ‘HELLO’ STRING1 DB 5 DUP (?) MOV AX, @DATA MOV DS, AX MOV ES, AX LEASI, STRING1 LEADI, STRING2 CLD MOVSB Read

12 Agenda String Data Transfer Instructions – The Direction Flag – LODS Instructions – STOS Instructions – MOVS Instructions More Examples Read

13 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

14 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

15 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

16 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

17 References materials are from Dr. Sazzad, NSU Ch 11, Assembly Language Programming – by Charls Marut Section 4-4, Intel Microprocessors – by Brey


Download ppt "Topic – string – Ch. 11 [Marut] Ch. 4 [Brey] String Data Transfer Instructions – The Direction Flag – LODS Instructions – STOS Instructions – MOVS Instructions."

Similar presentations


Ads by Google