DIV BX OVERFLOW
Thuaơt toán
7.4 Mạng 2chieău
Mạng2chieăulàmoơtmạngcụamoơtmạng,nghĩalàmoơtmạng1chieăumà cácphaăntử cụanólàmoơt mạng1chieăukhác.Cótheơhìnhdungmạng2chieăunhư moơtmatraơn chữnhaơt.VídúmạngBgoămcó3hàngvà4coơt(mạng3x4)nhưsau: Chương 7: Mạng và các chê đoơ địa chư 92
ROW\COLUMN 1 2 3 4
1 B[1,1] B[1,2] B[1,3] B[1,4]2 B[2,1] B[2,2] B[2,3] B[2,4] 2 B[2,1] B[2,2] B[2,3] B[2,4] 3 B[3,1] B[3,2] B[3,3] B[3,4]
Bởivìboơnhớ là1chieăuvìvaơycácphaăntửcụamạng2chieăuphạiđượclưutrữtređn boơnhớtheokieơulaănlượt.Có2cáchđượcdùng:
• Cách1làlưutrữtheothứ tựdòng :tređnmạnglưutrữcácphaăntửcụadòng1 roăiđêncácphaăntửcụadòng2...
• Cách2làlưutrữtheothứtựcoơt :tređnmạnglưutrữcácphaăntửcụacoơt 1 roăi đêncácphaăntửcụacoơt 2...
GiạsửmạngBchứa10,20,30,40tređndòng1 chứa50,60,70,80tređndòng2 chưá90,100,110,120tređndòng3 Theotraơttựhàngchúngđượclưutrữnhưsau:
B DW 10,20,30,40DW 50,60,70,80 DW 50,60,70,80 DW 90,100,110,120
Theotraơttựcoơtchúngđượclưutrữnhưsau: B DW 10,50,90
DW 20,60,100 DW 30,70,110 DW 40,80,120
Haăuhêtcácngođnngữcâpcaobieđndịchmạng2chieăutheotraơttự dòng. TrongASM,chúngtacótheơdùngmoơttrong2cách:
Nêucácthànhphaăncụamoơthàngđượcxửlýlaănlượtthìcáchlưutrữtheo traơttựhàngđượcdùng.Ngượcláithìdùngcáchlưutrữtheotraơttự coơt.
Xácđịnhmoơtphaăntửtređnmạng2chieău:
GiạsửraỉngmạngAgoăm MxN phaăntử lưutrữtheotraơttựdòng.GoịSlà đoơlớncụamoơtphaăntử:S=1nêuphaăntửlàbyte,S=2nêuphaăntửlàtừ.Đeơtìm phaăntửthứ A[i,j]thìcaăntìm:hàng i và tìmphaăntửthứjtređnhàngnày.Nhưvaơy phạitiênhành qua2bước:
Bước 1: Hàng1baĩtđaăutáivị tríA.VìmoêihàngcóNphaăntử,dođó Hàng2baĩtđaăutáiA+NxS .
Hàng3baĩtđaăutáiA+2xNxS.
Bước 2: Phaăntửthứ jtređnmoơthàngcáchvịtríđaău hàng(j-1)xSbyte Từ2bướctređnsuyraraỉngtrongmạng2chieăuNxMphaăntửmà chúng được lưutrữtheo traơttựhàngthìphaăntử A[i,j]cóđịachưđượcxácđịnhnhưsau:
A+((i-1)xN+(j-1))xS (1)
Chương 7: Mạng và các chê đoơ địa chư 93 TươngtựnêulưutrữtheotraơttựcoơtthìphaăntửA[i,j]cóđịachưnhưsau:
A+(i-1)+(j--)xM)xS (2) Ví
dú: GiạsửAlàmạngMxNphaăntửkieơu từ(S=2)đượclưutrữtheokieơu traơttự hàng.Hỏi:
Hàngibaĩtđaăutáiđịachưnào? Coơtjbaĩtđaăutáiđiáchưnào?
Haiphaăntửtređnmoơtcôtcáchnhaubaonhieđubytes Giại :
HàngibaĩtđaăutáiA[i,1]theocođngthức(1)thìnócóđịachưlà:A+(i-1)xNx2 CoơtjbaĩtđaăutáiA[1,j]theocođngthức(1)thìnócóđịachư:A+(j-1)x2
VìcóNcoơtneđn2phaăntửtređncùngmoơtcoơtcáchnhau2xNbyte.