LC-3指令集 指令/狀態碼介紹

LC-3指令集是相當基礎的計算機指令集,使用3位標識寄存器,因此有8個寄存器,而一條指令是16位,下面介紹一下常用指令

指令

ADD : 加,注意是立即數模式還是源目模式

AND : 按位與,注意是立即數模式還是源目模式

LD : 直接尋址,讀內存(PC+偏移)存儲的值到目的寄存器DR,即 DR = M[pc + offset]

ST :直接尋址,將寄存器SR的值寫入到目的地址對應的內存,即 M[pc + offset] = SR

LDI : 間接尋址(指針),讀內存(PC+偏移)存儲的值作爲地址(指針)p,再讀取p對應的內存值到目的寄存器DR,即DR = *M[pc + offset]

STI :間接尋址(指針),將寄存器SR的值寫入指針p(pc+偏移地址存放的值)對應的內存中,即 *M[pc + offset] = SR

LDR :基址+偏移尋址,將【base寄存器的值+offset】地址存儲的數據讀取到目的寄存器DR,即DR = M[R[base] + offset],其中 R[base] 表示取base寄存器存放的值

STR :基址+偏移尋址,將源寄存器SR的值寫入到內存的【base寄存器的值+offset】地址裏,即 M[R[base] + offset] = SR

LEA :計算有效地址,將pc+offset的值存放到寄存器DR,不訪問內存,只是做加法

在這裏插入圖片描述

圖片來自《計算機系統概論Yale.N.Patt&Sanjay.J.Patel.掃描版》

條件碼與BR語句

條件碼是跳轉語句BR所依賴的條件,有三個標誌位表示狀態,這三個狀態分別是 N,Z,P,代表負數,正數,零,而這個狀態的來源是最近一次寫入的寄存器

BR語句

在這裏插入圖片描述

BR語句決定了下一次是否跳轉,根據條件碼來決定,而跳轉的目標地址是 pc+offset,具體是什麼情況跳轉,取決於 BR[11:9] 裏面的nzp的值

注意事項

  • 狀態來源於最近一次被寫入的寄存器
  • 跳轉的目標地址是 pc+offset
  • 一共有7條語句可以修改條件碼,他們分別是:ADD,AND,LD,LDI,LDR,LEA,NOT

絕對跳轉

jump 是無論 任何時候都會跳轉的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章