.section .data
array: .zero 16 # allocate 16 bytes instead of 4
.section .text
.globl _start
_start:
mov $2,%esi
lea array(,%esi,4),%ecx # copy address of array[2] to %ecx, not the value
mov $9, %ebx
mov %ebx,(%ecx) # assign value into the memory pointed by %ecx
mov $1,%eax
mov array(,%esi,4),%ebx
int $0x80