Конвенции, псевдоинструкции и макросы
Структура памяти, псевдоинструкции, макросы, понятие о конвенциях ().
- Конвенции.
 - Расширенный ассемблер. 
- Ассемблер MIPS предоставляет псевдокоманды, которые на самом деле не являются частью набора команд, но часто используются программистами и компиляторами. При преобразовании в машинный код псевдокоманды транслируются в одну или несколько команд MIPS. Некоторым псевдокомандам требуется временный регистр для промежуточных вычислений. Ассемблер использует для этих целей временный регистр $at.
 - именование и использование регистров
 
 
Название  | 
  Номер  | 
  Назначение  | 
$zero  | 
  0  | 
  Константный нуль  | 
$at  | 
  1  | 
  Временный регистр для нужд ассемблера  | 
$v0–$v1  | 
  2-3  | 
  Возвращаемые функциями значения  | 
$a0–$a3  | 
  4-7  | 
  Аргументы функций  | 
$t0–$t7  | 
  8-15  | 
  Временные переменные  | 
$s0–$s7  | 
  16-23  | 
  Сохраняемые переменные  | 
$t8–$t9  | 
  24-25  | 
  Временные переменные  | 
$k0–$k1  | 
  26-27  | 
  Временные переменные операционной системы (ОС)  | 
$gp  | 
  28  | 
  Глобальный указатель (англ.: global pointer)  | 
$sp  | 
  29  | 
  Указатель стека (англ.: stack pointer)  | 
$fp  | 
  30  | 
  Указатель кадра стека (англ.: frame pointer)  | 
$ra  | 
  31  | 
  Регистр адреса возврата из функции  | 
- псевдоинструкции: 
- move, li, la, lw, sw, nop
 - not, abs, addu, subu, negu, mul, div, divu, remu, rol, ror
 - seq, sge, sgeu, sgt, sgtu, sle, sleu, slt, slti, sltu, sltiu, sne
 - b, beq, beqz, bge, bgeu, bgez, bgt,bgtu, bgtz, ble, bleu, blez, blt, bltu, bltz, bnez, bne
 - syscall
 
 - примеры:
 
   1 ## pseudoPoly.asm
   2 ## evaluate the polynomial ax2 + bx + c
   3 ##
   4         .text
   5         .globl  main
   6 
   7 main:
   8         lw   $t3,x          # get x
   9         lw   $t0,a          # get a
  10         lw   $t1,bb         # get bb
  11         lw   $t2,c          # get c
  12 
  13         mult $t3,$t3        # x2
  14         mflo $t4            # $t4 = x2
  15         nop
  16         nop
  17         mult $t4,$t0        # low  = ax2
  18         mflo $t4            # $t4  = ax2
  19         nop
  20         nop
  21 
  22         mult $t1,$t3        # low  = bx
  23         mflo $t5            # $t5  = bx
  24         addu $t5,$t4,$t5    # $t5  = ax2 + bx
  25 
  26         addu $t5,$t5,$t2    # $t5 = ax2 + bx + c
  27         sw   $t5,value      # value = polynomial
  28 
  29         .data
  30 x:      .word   4 
  31 value:  .word   1 
  32 a:      .word  20
  33 bb:     .word  -2           # the SPIM assembler does not allow the label "b"
  34 c:      .word   5
  35  
- Макроподстановки
 
