Download presentation
Presentation is loading. Please wait.
Published byPriscilla Lang Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.