iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0

哈囉各位這裡是廢廢,今天來到了第七天,而計算機組織小筆記會接續前天的一般指令類別。

算術指令

算術指令皆有三個運算元,其運算元皆為32-bit的一般目的暫存器,指令分為addtion和subtraction來進行加減。
• 指令:Addtion
• 格式:add register1, register2, register3
• 表示:register1 <- register2 + register3
https://ithelp.ithome.com.tw/upload/images/20220919/20145527rFdkkKFupT.jpg
• 指令:subtraction
• 格式:sub register1, register2, register3
• 表示:register1 <- register2 - register3
https://ithelp.ithome.com.tw/upload/images/20220919/201455276jlztCrH63.jpg
• 合併起來就會變成如下圖所示,B+C會存入臨時暫存器$t0,之後會與D相加存入A
https://ithelp.ithome.com.tw/upload/images/20220919/20145527BuWjlMGNgp.jpg

編譯程式的三步驟,因為1.與3.較為困難,因此會假設編譯程式已經做好了:
1.將暫存器配給常用變數,稱作register assignment。
2.轉譯,將高階語言轉譯成組合語言。
3.最佳化(optimization)。
以下為硬體示意圖:
https://ithelp.ithome.com.tw/upload/images/20220919/20145527OjbLw8QLCR.jpg

資料轉譯(Data movement)

將資料載入至暫存器
• 指令:load
• 格式:lw register1, offset(base register)
• 表示:register1 <- offset(base register)
將資料存入至暫存器
• 指令:store
• 格式:sw register1, offset(base register)
• 表示:register1 -> offset(base register)
https://ithelp.ithome.com.tw/upload/images/20220919/20145527ZzgpZJn4iZ.jpg
今天的筆記就先做到這裡吧!以上的C code轉譯成組合語言的部分需要經過練習才能熟練,光是用看的還不行呢


上一篇
DAY 6 計算機組織小筆記3
下一篇
DAY 8 計算機組織小筆記5
系列文
關於因耍廢太久而必須挑戰5個月上研究所的廢廢38
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言