Slide 8.9: Memory addressing (cont.)
Slide 8.11: TYPEDEF operator
Home

Pointers


A variable containing the address of another variable is called a pointer.

 add ax, [pointer]   add ax, SWORD PTR [pointer] 
 .data
 array    SWORD  10, 20, 30, 40
 pointer  DWORD  array
 .code
     mov   ecx, LENGTHOF array
     mov   eax, 0
 L1: add   ax, [pointer]
     add   pointer, 2
     loop  L1
     call  WriteInt
 .data
 array    SWORD  10, 20, 30, 40
 pointer  DWORD  array
 .code
     mov   ecx, LENGTHOF array
     mov   eax, 0
 L1: add   ax, SWORD PTR [pointer]
     add   pointer, 2
     loop  L1
     call  WriteInt
 Output   Output 

     

     
 add ax, [esi]   add al, [esi] 
 .data
 array    SWORD  10, 20, 30, 40
 pointer  DWORD  array
 .code
     mov   ecx, LENGTHOF array
     mov   eax, 0
     mov   esi, pointer
 L1: add   ax, [esi]
     add   esi, 2
     loop  L1
     call  WriteInt
 .data
 array    SWORD  0102h, 0304h, 0506h
 pointer  DWORD  OFFSET array
 .code
     mov   ecx, 6
     mov   eax, 0
     mov   esi, pointer
 L1: add   al, [esi]
     inc   esi
     loop  L1
     call  WriteHex
 Output   Output