DIV BX OVERFLOW
find the positio nk of the largest element among A[1] A[i] Swap A[i] and A[k] ( uses procedure SWAP )
7.4 Mạng 2chieău
Mạng 2 chieău là moơt mạng cụa moơt mạng , nghĩa là moơt mạng 1 chieău mà các phaăn tử cụa nó là moơt mạng 1 chieău khác . Có theơ hình dung mạng 2 chieău như moơt ma traơn chữ nhaơt . Ví dú mạng B goăm có 3 hàng và 4 coơt ( mạng 3x4) 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ởi vì boơ nhớ là 1 chieău vì vaơy các phaăn tử cụa mạng 2 chieău phại được lưu trữ tređn boơ nhớ theo kieơu laăn lượt . Có 2 cách được dùng :
• Cách 1 là lưu trữ theo thứ tự dòng : tređn mạng lưu trữ các phaăn tử cụa dòng 1 roăi đên các phaăn tử cụa dòng 2 ...
• Cách 2 là lưu trữ theo thứ tự coơt : tređn mạng lưu trữ các phaăn tử cụa coơt 1 roăi đên các phaăn tử cụa coơt 2...
Giạ sử mạng B chứa 10,20,30,40 tređn dòng 1 chứa 50,60,70,80 tređn dòng 2 chưá 90,100,110,120 tređn dòng 3 Theo traơt tự hàng chúng được lưu trữ như sau :
B DW 10,20,30,40 DW 50,60,70,80 DW 50,60,70,80 DW 90,100,110,120
Theo traơt tự coơt chúng được lưu trữ như sau : B DW 10,50,90
DW 20,60,100 DW 30,70,110 DW 40,80,120
Haău hêt các ngođn ngữ câp cao bieđn dịch mạng 2chieău theo traơt tự dòng . Trong ASM , chúng ta có theơ dùng moơt trong 2 cách :
Nêu các thành phaăn cụa moơt hàng được xử lý laăn lượt thì cách lưu trữ theo traơt tự hàng được dùng . Ngược lái thì dùng cách lưu trữ theo traơt tự coơt .
Xác định moơt phaăn tử tređn mạng 2 chieău :
Giạ sử raỉng mạng A goăm MxN phaăn tử lưu trữ theo traơt tự dòng . Goị S là đoơ lớn cụa moơt phaăn tử : S=1 nêu phaăn tử là byte , S=2 nêu phaăn tử là từ . Đeơ tìm phaăn tử thứ A[i,j] thì caăn tìm : hàng i và tìm phaăn tử thứ j tređn hàng này . Như vaơy phại tiên hành qua 2 bước :
Bước 1: Hàng 1 baĩt đaău tái vị trí A . Vì moêi hàng có N phaăn tử , do đó Hàng 2 baĩt đaău tái A+ NxS .
Hàng 3 baĩt đaău tái A+2xNxS .
Hàng thứ i baĩt đaău tái A+(i-1)xSxN .
Bước 2: Phaăn tử thứ j tređn moơt hàng cách vị trí đaău hàng (j-1)xS byte Từ 2 bước tređn suy ra raỉng trong mạng 2 chieău NxM phaăn tử mà chúng được lưu trữ theo traơt tự hàng thì phaăn tử A[i,j] có địa chư được xác định như sau :
Chương 7 : Mạng và các chê đoơ địa chư 93 Tương tự nêu lưu trữ theo traơt tự coơt thì phaăn tử A[i,j] có địa chư như sau :
A+(i-1)+(j--)xM)xS (2)
Ví dú : Giạ sử A là mạng MxN phaăn tử kieơu từ ( S=2) được lưu trữ theo kieơu traơt tự hàng . Hỏi :
Hàng i baĩt đaău tái địa chư nào ? Coơt j baĩt đaău tái điá chư nào ?
Hai phaăn tử tređn moơt côt cách nhau bao nhieđu bytes Giại :
Hàng i baĩt đaău tái A[i,1] theo cođng thức (1) thì nó có địa chư là : A+(i-1)xNx2 Coơt j baĩt đaău tái A[1,j ] theo cođng thức (1) thì nó có địa chư : A+(j-1)x2 Vì có N coơt neđn 2 phaăn tử tređn cùng moơt coơt cách nhau 2xN byte .