---
# System prepended metadata

title: '[計算機組織筆記 8]'
tags: [計算機組織, assembly]

---

# [計算機組織筆記 8]
###### tags: `計算機組織` `assembly`

#7AR

＊IR放當下執行的指令
＊PC放下個指令的地址


### jal = jump and link、跳去某個地方且要把下個要執行指令的地址的放在RA（return address）這個暫存器（第32個暫存器）中
* `sw $s0, 0($sp)` sw : store word from register to memory、sp : stack point
* `sw $t0, 4($sp)` 
* `sw $t1, 8($sp)` 一次跳四個的原因 : 一個word =32bit = 4*8bit，一個memory位址的大小 = 8bit
* `lw $so, 0($sp)` lw : load word from memory to register
* 應用狀況 : 在呼叫副函式的時候，要把原本的東西先存在stack等等就可以在把stack的資料取回來，回到原本要執行的狀態
* $s vs $t，caller會預期t這系列暫存器可能會被改掉，所以t系列其實可以不用sw跟lw，s系列則反之