First String Instructions Assembly language programming... Direction Flag Cont.. direction for string instructions... Direction Flag Example... Direction Flag Example... Direction Flag E
Trang 1First String Instructions
Assembly language programming
Trang 2and its significance
Trang 8Direction Flag (Cont.)
direction for string instructions
DF = 0: pointers increase
DF = 1: pointers decrease
CLD – Clears the direction flag (0)
STD – Sets the direction flag (1)
cleared.
Trang 9Direction Flag (Example)
Trang 10Direction Flag (Example)
Trang 11Direction Flag (Example)
Trang 12Direction Flag (Example)
Trang 13Direction Flag (Example)
Trang 14Direction Flag (Example)
Trang 15Direction Flag (Example)
Trang 16Direction Flag (Example)
Trang 17Direction Flag (Example)
Trang 18Direction Flag (Example)
Trang 19Direction Flag – Responsible use
Trang 22my_arr dd ARR_LEN dup (?)
edx eax ecx
???????? ???????? ????????
DF
0
my_arr
Trang 23my_arr dd ARR_LEN dup (?)
edx eax ecx
Trang 24my_arr dd ARR_LEN dup (?)
edx eax ecx
???????? ???????? 00000003
DF
0
my_arr
Trang 25my_arr dd ARR_LEN dup (?)
edx eax ecx
Trang 26my_arr dd ARR_LEN dup (?)
edx eax ecx
00000000 00000001 00000003
DF
0
my_arr
Trang 27my_arr dd ARR_LEN dup (?)
edx eax ecx
00000001 00000001 00000003
DF
0
esi my_arr
Trang 28my_arr dd ARR_LEN dup (?)
edx eax ecx
00000001 00000001 00000002
DF
0
my_arr
Trang 29my_arr dd ARR_LEN dup (?)
edx eax ecx
00000001 00000003 00000002
DF
0
esi my_arr
Trang 30my_arr dd ARR_LEN dup (?)
edx eax ecx
00000004 00000003 00000002
DF
0
my_arr
Trang 31my_arr dd ARR_LEN dup (?)
edx eax ecx
00000004 00000003 00000001
DF
0
esi my_arr
Trang 32my_arr dd ARR_LEN dup (?)
edx eax ecx
00000004 00000005 00000001
DF
0
my_arr
Trang 33my_arr dd ARR_LEN dup (?)
edx eax ecx
00000009 00000005 00000001
DF
0
esi my_arr
Trang 34my_arr dd ARR_LEN dup (?)
edx eax ecx
00000009 00000005 00000000
DF
0
my_arr
Trang 36MOVS - Notes
locations at the same time!
e s i is s ource, e d i is destination
decremented, according to the DF
Trang 38src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 39src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 40src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 41src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 42src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 43src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 44src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 45src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 46src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 47src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 48src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 49src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 50src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 51src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 52src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 53src_arr db ARR_LEN dup (?)
dst_arr db ARR_LEN dup (0)
Trang 54Summary
instructions:
to which esi or edi are advanced