Jika programmer mendengar kata array, maka yang ada dipikirannya adalah sebuah variable yang dapat menyimpan satu atau lebih nilai dari variable tersebut dalam ukuran memori tertentu.
Bisa kita lihat jika pemrograman C, pendeklarasian array adalah sebagai berikut:
Penjelasan:
syntax "lea eax, nValue" adalah menyalin alamat (address) variable nValue ke register EAX untuk selanjutnya ditulis nilainya dengan syntax "mov dword ptr ds:[eax + 4 * ecx], 20", lalu "inc ecx" menjadikan ecx berubah menjadi nilai 1 untuk mengakses array berikutnya, sehingga ketika ada syntax yang sama "mov dword ptr ds:[eax + 4 * ecx], 30", maka nilai 30 ditempatkan di array yang kedua.
Bisa kita lihat jika pemrograman C, pendeklarasian array adalah sebagai berikut:
int nValue[2]; nValue[0] = 20; nValue[1] = 30;Bagaimana dengan Assembly? Eeet dah meeen... siap-siap beli bordex atau parahmex.
.data? nValue dd ? .code xor ecx, ecx lea eax, nValue mov dword ptr ds:[eax + 4 * ecx], 20 inc ecx mov dword ptr ds:[eax + 4 * ecx], 30Dan cara mengaksesnya,
.code xor ecx, ecx lea eax, nValue mov edx, dword ptr ds:[eax + 4 * ecx] inc ecx mov edi, dword ptr ds:[eax + 4 * ecx]Yaitu memindahkan nilai pada array pertama ke register EDX. Selanjutnya memindahkan nilai array kedua ke register EDI.
Penjelasan:
syntax "lea eax, nValue" adalah menyalin alamat (address) variable nValue ke register EAX untuk selanjutnya ditulis nilainya dengan syntax "mov dword ptr ds:[eax + 4 * ecx], 20", lalu "inc ecx" menjadikan ecx berubah menjadi nilai 1 untuk mengakses array berikutnya, sehingga ketika ada syntax yang sama "mov dword ptr ds:[eax + 4 * ecx], 30", maka nilai 30 ditempatkan di array yang kedua.