跳至內容

LC-3

維基百科,自由的百科全書

LC-3(Little Computer 3)是一種彙編語言及其指定的微處理器架構。由德克薩斯大學奧斯汀分校的 Yale Patt,和伊利諾伊大學厄巴納-香檳分校的 Sanjay J. Patel 開發。它具有相對簡單的指令集,可用於編寫中等複雜的彙編程序,並且是C編譯器的可行目標。該語言比 x86 簡單,但具有許多與更複雜語言相似的功能。這些特性使其適合初級教學,因此最常用於教授計算機科學學生編程和計算機體系結構的基礎知識。[1]

指令集

[編輯]

LC-3 的暫存器字長為 16 位,使用一個 16 位可尋址存儲器,擁有 65536 個位置的地址空間。暫存器文件包含八個暫存器,編號為R0至R7。所有暫存器都是通用的,任何能寫入暫存器文件的指令都可以自由使用,但在某些情境下(例如從C代碼轉換到LC-3彙編)中,有些暫存器被用於特殊用途。

指令寬度為16位,操作碼為4位。指令集為十六種可能的操作碼中的十五條定義了指令。該架構支持使用鍵盤和顯示器來調節輸入和輸出;這種支持通過內存映射的輸入輸出抽象(I/O)來實現。作業系統提供讀取和回放鍵盤字符、將單個字符列印到顯示器、列印整串字符串(打包和解壓形式)以及停止機器的功能。

LC-3中的所有數據都是有符號整數(補碼形式儲存)。I/O設備運行ASCII字符。LC-3 不支持浮點數。

LC-3實現了十五種指令類型,第十六種操作碼保留以供後續使用。該架構採取載入-儲存架構,內存中的值必須先存入暫存器文件,才能作操作它們。

LC-3 的運算指令包括有符號加法,按位與和按位非。尋址模式有PC相對尋址,間接尋址和暫存器尋址,支持無條件跳轉,條件分支和子程序調用。

Formats of the entire LC-3 instruction set. Note: indicates instructions that modify condition codes.[2]
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ADD 0001 DR SR1 0 00 SR2
ADD 0001 DR SR1 1 Imm5
AND 0101 DR SR1 0 00 SR2
AND 0101 DR SR1 1 Imm5
BR 0000 n z p PCoffset9
JMP 1100 000 BaseR 000000
JSR 0100 1 PCoffset11
JSRR 0100 0 00 BaseR 000000
LD 0010 DR PCoffset9
LDI 1010 DR PCoffset9
LDR 0110 DR BaseR offset6
LEA 1110 DR PCoffset9
NOT 1001 DR SR 111111
RET 1100 000 111 000000
ST 0011 SR PCoffset9
STI 1011 SR PCoffset9
STR 0111 SR BaseR offset6
TRAP 1111 0000 trapvect8
reserved 1101

LC-3b

[編輯]

LC-3b 是LC-3的改進版本,包含以下變化:[3]

  • 機器的字長保持為16位,但內存現在可以用相同的地址空間進行字節尋址。
  • LD和ST指令(使用PC相對尋址加載和存儲數據)已被移除。
  • LDI和STI指令(間接尋址加載和存儲)使用基於暫存器的尋址,而非PC相對尋址。
  • 新增了兩條指令,LDB和STB,用於操作單個內存字節。
  • 保留的操作碼已被轉換為一個移位指令SHF,支持任意大小的雙向算術和邏輯移位。

參考資料

[編輯]
  1. ^ Patt, Yale N.; Patel, Sanjay. Introduction to Computing Systems: From Bits and Gates to C and Beyond. New York, NY: McGraw-Hill Higher Education. 2003 [6 October 2010]. ISBN 0-07-246750-9. (原始內容存檔於2014-06-08). 
  2. ^ Patel, Sanjay; Patt, Yale N. Introduction to Computing Systems: From Bits & Gates to C/C++ & Beyond 3rd. McGraw Hill. Aug 15, 2019: 656. ISBN 978-1-260-15053-7 (英語). 
  3. ^ Tale Patt. The Microarchitecture of the LC-3b, Basic Machine (PDF). [2026-02-14]. (原始內容存檔 (PDF)於2025-08-15).