DIV BX OVERFLOW
7.1 Mạng moơt chieău
Mạng mt chieău là mt danh sách các phaăn tử cùng lối và cĩ trt tự . Cĩ trt tự cĩ nghĩa là cĩ phaăn tử thứ nhât , phaăn tử thứ hai , phaăn tử thứ ba ... Trong tốn hĩc , nêu A là mt mạng thì các phaăn tử cụa mạng được định nghĩa làA[1}, A[2] , A[3} ... Hình vẽ là dưới đađy là mạng A cĩ 6 phaăn tử .
Index 1 A[1] 2 A[2] 3 A[3] 4 A[4] 5 A[5] 6 A[6]
Trong chương 1 chúng ta đã dùng tốn tử giạ DB và DW đeơ khai báo mạng byte và mạng từ . Ví dú , mt chuoơi 5 ký tự cĩ teđn là MSG
MSG DB ‘abcde’
hoaịc mt mạng từ W goăm 6 sơ nguyeđn mà giá trị ban đađù cụa chúng là 10,20,30,40.50 và 60
W DW 10,20,30,40,50,60
Địa chư cụa biên mạng gĩi là địa chư cơ sở cụa mạng ( base address of the array) . Trong mạng W thì địa chư cơ sở là 10 .Nêu địa chư offset cụa W là 0200h thì trong b nhớ mạng 6 phaăn tử nĩi tređn sẽ như sau :
Offset address Symbolic address Decimal content
0200h W 10 0202h W+2h 20 0204h W+4h 30 0206h W+6h 40 0208h W+8h 50 020Ah W+Ah 60
Chương 7 : Mạng và các chê đ địa chư 81
Tốn tử DUP ( Duplicate)
Cĩ theơ định nghĩa mt mạng mà các phaăn tử cụa nĩ cĩ cùng mt giá trị ban đaău baỉng phép DUP như sau :
repeat_count DUP ( value)
laịp lái mt sơ ( VALUE) n laăn ( n = repeat_count) Ví dú :
GAMMA DW 100 DUP (0) ; táo mt mạng 100 từ mà giá trị ban đađù là 0 .
DELTA DB 212 DUP (?) ; táo mt mạng 212 byte giá trị chưa xác định
DUP có theơ loăng nhau , ví dú :
LINE DB 5,4,3 DUP (2, 3 DUP (0) ,1) tương đương với :
LINE DB 5,4,2,0,0,0,1,2,0,0,0,1,2,0,0,0,1
Vị trí các phaăn tử cụa mt mạng
Địa chư cụa mt phaăn tử cụa mạng cĩ theơ được xác định baỉng cách cng mt haỉng sơ với địa chư cơ sở . Giạ sử A là mt mạng và S chư ra sơ byte cụa mt phaăn tử cụa mạng ( S=1 đơi với mạng byte và S=2 đơi với mạng từ ) . Vị trí cụa các phaăn tử cụa mạng A cĩ theơ tính như sau :
Position Location 1 A 2 A+1xS 3 A+2xS . . . . . . N A+(N-1)xS
Ví dú : Trao đoơi phaăn tử thứ 10 và thứ 25 cụa mạng từ W . Phaăn tử thứ 10 là W[10] cĩ địa chư là W+9x2=W+18
Phaăn tử thứ 25 là W[25] cĩ địa chư là W+24x2=W+48 Vì vy cĩ theơ trao đoơi chúng như sau :
MOV AX,W+18 ; AX = W[10] XCHG W+48,AX ; AX= W[25] MOV W+18, AX ; complete exchange