| Mode | Syntax | Effective Address | 
|---|---|---|
| Relative | relocatable symbol ± expression | EA = relocatable address ± expression | 
| Register indirect | ($n) where $n: general purpose register n |  
  EA = [$n] = contents of $n |  
 
| Base | offset($n) |  
  EA = [$n] + offset |  
 
val+1 is fine in the following code, but val-1 is not.
 
   
  | 
  
    
   | 
 
| Relative Addressing Mode | ||
|---|---|---|
    
          .data
 s:  .asciiz  "abc"
     .text
     la  $a0, s+1
     li  $v0, 4
     syscall
    
    | 
   
    
            .data
 val:  .byte   1
       .half   2
       .word   3 
       .text 
       lh  $a0, val+1
       li  $v0, 1
       syscall
    
    |  
   
     
            .data
 val:  .byte   1
       .half   2
       .word   3 
       .text 
       lb  $a0, val+1
       li  $v0, 1
       syscall 
     
    |  
  
| Output | Output | Output |