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 – 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 MOV DS, AX LEA SI, STRING1 CLD LODSB
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 MOV ES, AX LEA DI, STRING1 CLD MOV AL, ‘A’ STOSB
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 display **** ****** abc 07H Video display Text memory cbacba 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.DATA STRING1DB ‘HELLO’ STRING1 DB 5 DUP (?) MOV MOV DS, AX MOV ES, AX LEASI, STRING1 LEADI, STRING2 CLD MOVSB
Example: Scroll Up One Line **** ****** Video display Text memory B800H 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 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
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
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
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
Mid Term, Fall 2010 October 30, Saturday At 9:00 AM to 10:30 NAC 311
References Ch 11, Assembly Language Programming – by Charls Marut Section 4-4, Intel Microprocessors – by Brey