1 / 16

Assembly Lang. – Intel 8086 String [ Ch . 11 [ Marut ] Ch. 4 [ Brey ] ]

Assembly Lang. – Intel 8086 String [ Ch . 11 [ Marut ] Ch. 4 [ Brey ] ]. String Data Transfer Instructions The Direction Flag LODS Instructions STOS Instructions MOVS Instructions Few Examples Materials are from Dr. Sazzad , NSU Ch 11, Assembly Language Programming – by Charls Marut

chaela
Download Presentation

Assembly Lang. – Intel 8086 String [ Ch . 11 [ Marut ] Ch. 4 [ Brey ] ]

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Assembly Lang. – Intel 8086 String[Ch. 11 [Marut] Ch. 4 [Brey]] • String Data Transfer Instructions • The Direction Flag • LODS Instructions • STOS Instructions • MOVS Instructions • Few Examples • Materials are from Dr. Sazzad, NSU • Ch 11, Assembly Language Programming – by CharlsMarut • Section 4-4, Intel Microprocessors – by Brey

  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. 3write 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. Read Example STRING1 DB ‘ABC’ MOV AX, @DATA MOV DS, AX LEA SI, STRING1 CLD LODSB LODSB

  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 Read STRING1 DB ‘HELLO’ MOV AX, @DATA MOV ES, AX LEA DI, STRING1 CLD MOV AL, ‘A’ STOSB STOSB

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

  11. Example Read .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

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

  13. Concatenate Two Input StringsThen Display Display message 1 Read first string Display message 2 Read second string Concatenate the two strings Display the result Input String 1: Hello Input String 2: World! Concatenated String: Hello World!

  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

More Related