# [計算機組織筆記 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系列則反之