哈囉各位這裡是廢廢,今天來到了第七天,而計算機組織小筆記會接續前天的一般指令類別。
算術指令皆有三個運算元,其運算元皆為32-bit的一般目的暫存器,指令分為addtion和subtraction來進行加減。
• 指令:Addtion
• 格式:add register1, register2, register3
• 表示:register1 <- register2 + register3
• 指令:subtraction
• 格式:sub register1, register2, register3
• 表示:register1 <- register2 - register3
• 合併起來就會變成如下圖所示,B+C會存入臨時暫存器$t0,之後會與D相加存入A
編譯程式的三步驟,因為1.與3.較為困難,因此會假設編譯程式已經做好了:
1.將暫存器配給常用變數,稱作register assignment。
2.轉譯,將高階語言轉譯成組合語言。
3.最佳化(optimization)。
以下為硬體示意圖:
將資料載入至暫存器
• 指令:load
• 格式:lw register1, offset(base register)
• 表示:register1 <- offset(base register)
將資料存入至暫存器
• 指令:store
• 格式:sw register1, offset(base register)
• 表示:register1 -> offset(base register)
今天的筆記就先做到這裡吧!以上的C code轉譯成組合語言的部分需要經過練習才能熟練,光是用看的還不行呢