<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=PDP-11</id>
	<title>PDP-11 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=PDP-11"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=PDP-11&amp;action=history"/>
	<updated>2026-07-13T21:16:47Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=PDP-11&amp;diff=170042&amp;oldid=prev</id>
		<title>2025年12月26日 (五) 15:56 imported&gt;ExultantEditor</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=PDP-11&amp;diff=170042&amp;oldid=prev"/>
		<updated>2025-12-26T15:56:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{noteTA|G1=IT}}&lt;br /&gt;
{{Infobox information appliance&lt;br /&gt;
| name = PDP-11&lt;br /&gt;
| title = &lt;br /&gt;
| aka = &lt;br /&gt;
| logo = [[File:PDP-11 wordmark.svg|frameless|class=skin-invert]]&lt;br /&gt;
| logo caption = &lt;br /&gt;
| image = Pdp-11-40.jpg&lt;br /&gt;
| image_size = &lt;br /&gt;
| caption =底部是PDP-11/40 CPU，顶安装了一个TU56双磁带{{le|DECtape}}驱动器。&lt;br /&gt;
| developer = [[Digital Equipment Corporation]]&lt;br /&gt;
| manufacturer = &lt;br /&gt;
| family = [[PDP (迷你電腦)|编程数据处理机]]&lt;br /&gt;
| type = [[小型机]]&lt;br /&gt;
| generation = &lt;br /&gt;
| release date = {{Start date and age|1970}}&lt;br /&gt;
| lifespan = 1970–1997&lt;br /&gt;
| price = &lt;br /&gt;
| discontinued = {{End date and age|1997}}&lt;br /&gt;
| units sold = 大约600,000&lt;br /&gt;
| unitsshipped = &lt;br /&gt;
| media = &lt;br /&gt;
| os = {{le|DEC BATCH-11/DOS-11||BATCH-11/DOS-11}}, [[MUMPS|DSM-11]], [[RSX-11|IAS]], [[RSX-11|P/OS]], {{le|RSTS/E}}, [[RSX-11]], {{le|RT-11}}, {{le|Ultrix}}-11, [[Version 7 Unix|Seventh Edition Unix]], [[UNIX System V|SVR1]], {{le|伯克利软件发行版历史#2BSD (PDP-11)|History of the Berkeley Software Distribution#2BSD (PDP-11)|2BSD}}&lt;br /&gt;
| power = &lt;br /&gt;
| soc = &lt;br /&gt;
| cpu = &lt;br /&gt;
| memory = &lt;br /&gt;
| storage = &lt;br /&gt;
| memory card = &lt;br /&gt;
| display = &lt;br /&gt;
| graphics = &lt;br /&gt;
| sound = &lt;br /&gt;
| input = &lt;br /&gt;
| controllers = &lt;br /&gt;
| camera = &lt;br /&gt;
| touchpad = &lt;br /&gt;
| connectivity = &lt;br /&gt;
| platform = [[PDP (迷你電腦)|PDP]] [[16位元|16-位]]&lt;br /&gt;
| service = &lt;br /&gt;
| dimensions = &lt;br /&gt;
| weight = &lt;br /&gt;
| topgame = &lt;br /&gt;
| compatibility = &lt;br /&gt;
| predecessor = &lt;br /&gt;
| successor = [[VAX|VAX-11]]&lt;br /&gt;
| related = &lt;br /&gt;
| website = &lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PDP-11&amp;#039;&amp;#039;&amp;#039;為[[迪吉多|迪吉多電腦]]於1970到1980年代所銷售的一系列[[16位元]][[小型计算机|迷你電腦]]，這個產品線總計銷售約600,000部，是迪吉多最成功的產品線之一。PDP-11是迪吉多電腦的[[PDP-8]]系列的後續機種。PDP-11有著許多創新的特色，而且比起其前代機種更容易撰寫[[程式]]。當[[32位元]]的後續擴充機型[[VAX|VAX-11]]推出時，PDP-11已經廣受[[程式設計師]]的喜愛。這兩個機型後續的[[市場]]，則多由[[IBM PC]]、[[Apple II|蘋果二號]]與[[昇陽電腦]]的[[工作站]]電腦等[[個人電腦]]所取代。&lt;br /&gt;
&lt;br /&gt;
== PDP-11系列的特色 ==&lt;br /&gt;
&lt;br /&gt;
=== 指令集 ===&lt;br /&gt;
&lt;br /&gt;
PDP-11深受程式設計師喜愛的原因，主要是在於其高度[[正規化指令集]]的設計，使得程式設計師可以容易地分別記住所有的運算碼，以及指定[[運算子]]的方法。如此一來，給定運算子的方法（或稱之為[[定址模式]]）便可以很容易地預測，這樣子就不用去背一堆例外條件，或是特別受限的定址方式。&lt;br /&gt;
&lt;br /&gt;
PDP-11所使用的指令集結構影響了[[C語言]]的語法。例如在c語言中，有著暫存器定址模式的增值與減值語法 &amp;#039;&amp;#039;++i&amp;#039;&amp;#039;與&amp;#039;&amp;#039;i--&amp;#039;&amp;#039;。如果&amp;#039;&amp;#039;i&amp;#039;&amp;#039;與&amp;#039;&amp;#039;j&amp;#039;&amp;#039;都是暫存器變數，那麼&amp;#039;&amp;#039;*(--i) = *(j++)&amp;#039;&amp;#039;這樣子的表示式就可以編譯為單一機器碼指令。由於對單精確與雙精確浮點數沒有不同的運算碼，也造成C語言中缺乏單精確浮點數運算的運算模式。&lt;br /&gt;
&lt;br /&gt;
就某種邏輯來看，指令集中的定址模式可以視為一種&amp;quot;基底&amp;quot;，而指令集中的運算碼則為另一個基底。每個雙引數指令可以分為兩個6位元的引數識別（分別包含了一個3位元的暫存器號碼，和一個3位元的定址模式碼）與一個4位元的[[運算碼]]。而單引數指令，則有一個6位元的引數識別和一個10位元的運算碼。所有的運算碼都可以使用任何的定址模式，雙引數指令還可以分別組合使用。在八個暫存器（編號0到7）當中，有七個是一般用途的T暫存器可作為平常運算使用，不過暫存器6則是某些指令下作為硬體識別[[堆疊]][[指標 (電腦科學)|指標]]之用。暫存器7則是[[程式計數器]]，是處理器執行程式碼的位址標記。這項創新與一些定址模式，提供了暫存器內容定址，絕對位址定址與相對位址定址。&lt;br /&gt;
&lt;br /&gt;
16位元字元組是以[[字节序#小端序|小端序]]即低位元在前的方式儲存的。而32位元字元組則通常是以一種不常見的[[字节序#混合序|混合序]]格式儲存。由於PDP-11的風行，這種格式也被引用為&amp;#039;&amp;#039;pdp-資料次序&amp;#039;&amp;#039;（PDP-endian）。&lt;br /&gt;
&lt;br /&gt;
=== 無專用的輸出入埠 ===&lt;br /&gt;
&lt;br /&gt;
PDP-11與其他早期電腦最大的差異點，在於沒有專用的[[I/O|輸出入]][[总线|匯流排]]。PDP-11-{只}-有一個稱作為[[Unibus]]的記憶體匯流排。所有外部的設備，都分別對應到不同的記憶體位址，所以不需要特殊的I/O指令。而其[[中斷]]系統的設計，也刻意的簡單化，以確保沒有任何的中斷程序會被遺漏。外部的設備可以從單一的輸入線到四條優先度線路之一，發出中斷要求。而處理器可以從[[階層式]]的接受線路來回應中斷要求。（階層式的架構，是由一系列的[[邏輯閘]]所構成，來接受一系列按照優先順序的事件。就一般來說，第一個邏輯閘的要求會優先被接受。而階層式的要求，是按照設備的優先度來處理的。）&lt;br /&gt;
&lt;br /&gt;
而就PDP-11的設計來說，這代表中斷要求被接受的順序，是根據實際上硬體在匯流排上與處理器的接近程度來決定的。當處理器回應的時候，外部設備會將其向量位址放在匯流排上，這是一個4位元的記憶體。之後處理器會從向量位置表讀取到[[状态寄存器]]與[[程式計數器]]。&lt;br /&gt;
而新的狀態暫存器會暫時取消掉其他的中斷要求，來避免中斷的重複發生。而取出的程式暫存器，則是指向中斷處理程序的起始位址。中斷處理程序將會先處裡這個硬體的要求，完成後再重新接受其他的中斷要求。最後，一個特別的RTI程序（自中斷回復）會將處理器回復到發生中斷之前的狀態。（這也可能是一個優先權較低的中斷處理程序）一個值得注意的是，處理器會避免遺漏掉中斷要求，假使中斷沒有被回應，將仍然會被保留著到之後循環。假使程序不正常的啟動了，處理器會發生一個特別的逾時錯誤，使用者將會得知這個硬體的錯誤。&lt;br /&gt;
&lt;br /&gt;
=== 為大量生產而設計 ===&lt;br /&gt;
&lt;br /&gt;
最後，由於PDP-11的設計，只需要半專業的人員來進行生產組裝。產品在尺寸精確上的要求，並不是非常要緊的。PDP-11的[[背版]]使用[[繞線連接]]的方式，也就是內部的[[印刷電路板]]插入背版上的接頭。這個接頭上的端子以導線纏繞於上的方式來連接，端子可以切開導線的絕緣層，與導線金屬的部份形成氣密連接。這種類似型式的接頭也可於[[電信模組]]上見到。&lt;br /&gt;
&lt;br /&gt;
== LSI-11 ==&lt;br /&gt;
&lt;br /&gt;
LSI-11是第一個使用[[大规模集成电路|大型積體電路]]技術製造的PDP-11機型。整個處理器包含了四個由[[威騰電子|威騰]]（Western Digital）所製造的大型積體電路晶片。而其匯流排是一個類似Unibus的[[Q-Bus]]，不同點在於位址與資料以多工的方式來共用資料線，而Unibus則是使用分別的線路。而且另一個不同點在於其I/O設備的定址方式，可以容納到22位元寬的實體位址（Unibus只有18位元的寬度），並且有支援阻斷式（block mode）的運作。&lt;br /&gt;
&lt;br /&gt;
處理器的[[微碼]]包含了一個除錯器，可以經由標準的[[RS-232]]終端機來操作。這在當時是一項創舉，因為微碼是計算機最基本的一個部份，也是最關鍵的[[控制單元]]。假使無法運作，便稱不上是一個計算機。除錯器提供了一個檢驗處理器中暫存器、記憶體與輸出入設備的方法。因此，只要處理器可以運作，便能夠檢驗與修正計算機的內部狀態。這個內建的除錯器，省卻了昂貴與不方便操作的一大堆在面板上的開關與燈號，那是傳統上唯一能夠與快掛掉的電腦溝通的方式。&lt;br /&gt;
&lt;br /&gt;
其微碼包含了一個通用的[[開機啟動程序]]，相容於所有DEC的磁碟設備。&lt;br /&gt;
&lt;br /&gt;
這兩項創新使得LSI-11總是可以開始運作。當其無法從大型磁碟啟動時，會嘗試由其軟碟啟動。而當硬體開始運作後，便可以從熟悉的終端機來使用。&lt;br /&gt;
&lt;br /&gt;
== PDP-11的式微 ==&lt;br /&gt;
&lt;br /&gt;
PDP-11最基本的設計是非常優良的，而且也一直有更新加入新的技術。然而，PDP-11還是必須面對其16位元的架構是有極限的，這是沒有辦法透過校調或是擴充來克服的。雖然有些機型可以支援更大的實體記憶體定址，但所有的應用程式仍然被侷限在一個16位元的[[address space|虛擬定址空間]]而只能夠使用64K的記憶體。當1980年代[[超大规模集成电路|超大型積體電路]]的技術使得[[記憶體]]晶片能夠更便宜，但是PDP-11的軟體仍然無法享受到更大的記憶體所帶來的便利。&lt;br /&gt;
&lt;br /&gt;
DEC在PDP-11的下一代處理器為[[VAX]]（是&amp;quot;Virtual Address Extension (to the PDP-11)&amp;quot;的縮寫）克服了這些問題，但最初只針對高階市場來進行推廣。而英特爾的[[8086]]與[[8088]]提供了一個四位元的擴充&amp;quot;節&amp;quot;在其16位元的定址上，使得定址空間提升到1M而不需要更改為32位元的設計。這對當時逐漸擴充的IBM個人電腦相容機市場來說，已經是足夠的了。雖然在能夠支援更大節定址空間的[[80286]]與擁有32位元定址空間的[[80386]]推出前，就有到達1M的需求。&lt;br /&gt;
&lt;br /&gt;
當工程師轉移到有更大的定址空間的架構時，支援32位元的運算也開始在如[[摩托羅拉]][[Motorola 68000|68000]]和[[英特爾]][[80386]]等後續的[[微處理器]]晶片上提供了。最後這些晶片的經濟規模大到一個程度後，PDP-11就相對而言不夠划算。DEC的一個[[DEC Professional (computer)|DEC Professional]]系列，也就因此在市場上失敗了，同時兩個之後的DEC個人電腦系列也面臨相同的命運。&lt;br /&gt;
&lt;br /&gt;
DEC最後在1997年中止了PDP-11的機型，並且把其相關的設計與作業系統授權賣給了一家愛爾蘭公司[[Mentec]]。這家公司是負責生產LSI-1的Q-Bus機板與個人電腦的ISA架構機板。&lt;br /&gt;
&lt;br /&gt;
到了1990年末，DEC與大部分美國東北部六州（New England）的迷你電腦商，都在UNIX與windows伺服器的興起下，逐漸衰敗。&lt;br /&gt;
&lt;br /&gt;
== 架構細節 ==&lt;br /&gt;
&lt;br /&gt;
以下內容可參考&amp;lt;cite&amp;gt;PDP-11處理器手冊&amp;lt;/cite&amp;gt;&lt;br /&gt;
（詳見Gordon Bell&amp;#039;s [http://research.microsoft.com/users/GBell/Digital/PDP%2011%20Handbook%201969.pdf 1969年版]{{Wayback|url=http://research.microsoft.com/users/GBell/Digital/PDP%2011%20Handbook%201969.pdf |date=20060829084230 }}）。&lt;br /&gt;
&lt;br /&gt;
=== 通用暫存器的[[定址模式]] ===&lt;br /&gt;
&lt;br /&gt;
（R為通用暫存器，有0至7號；(R)為暫存器的內容）&lt;br /&gt;
&lt;br /&gt;
: 0.暫存器 - 數值來自或存入暫存器中：OPR R ; R含有參數&lt;br /&gt;
: 1.暫存器指定位址 - 暫存器用來指定讀寫的記憶體位址：OPR (R) ; R存有位址&lt;br /&gt;
: 2.自動增值：OPR (R)+ ; R記憶體位址上的數值增加（R）&lt;br /&gt;
: 3.自動增值指定位址：OPR @(R)+ ; R存有位址，其內容 (R)加2&lt;br /&gt;
: 4.自動減值：OPR -（R）；記憶體位址R上的數值 (R)減少&lt;br /&gt;
: 5.自動減值指定位址：OPR @-（R）；記憶體位址R上的數值 (R)減2&lt;br /&gt;
: 6.索引：OPR X(R) ; (R)+X為記憶體位址，在指令的第二字元&lt;br /&gt;
: 7.索引指定位址：OPR @X(R) ; (R)+X為指令的第二字元記憶體位址的位址&lt;br /&gt;
&lt;br /&gt;
=== 程式計數器的[[定址模式]] ===&lt;br /&gt;
&lt;br /&gt;
程式計數器（program counter，簡稱PC）亦可以用來作為一般暫存器使用，因此有以下的定址模式，可參照前面的通用暫存器：&lt;br /&gt;
&lt;br /&gt;
: 2.直接定值：OPR #N；引數包含在指令中&lt;br /&gt;
: 3.絕對位址：OPR @#A；絕對位址包含在指令中&lt;br /&gt;
: 6.相對定址：OPR A ; PC+2+X為記憶體位址。PC+2為更新後的PC&lt;br /&gt;
: 7.相對參考定址：OPR @A ; PC+2+X為記憶體位址。PC+2為更新後的PC&lt;br /&gt;
&lt;br /&gt;
=== PDP-11指令 ===&lt;br /&gt;
&lt;br /&gt;
* 單引數指令 - 指令的長度為雙字元組，一部分用來指定動作，稱之為&amp;quot;運算碼&amp;quot;（OP-Code）或&amp;quot;運算元&amp;quot;。而第二部份則用來指定引數（運算子）的位址。&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;10&amp;quot; style=&amp;quot;text-align:center; background-color:#CCCCCC;&amp;quot; | 運算碼&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center; background-color:#9999FF;&amp;quot; | 模式&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center; background-color:#99FF99;&amp;quot; | 暫存器&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
** CLR（清除）, COM（取一的補數）, INC（增值）, DEC（減值）, NEG（取二的補數之負數）, TST（測試）, ASR（數學位元右移）, ASL（數學位元左移）, ROR（向右位元轉動）, ROL（向左位元轉動）, SWAB（字元置換）, ADC（加法進位）, SBC（減法進位）, SXT（擴張正負號）。&lt;br /&gt;
* 雙引數指令 - 指令雙字元組的一部分用來指定動作，而其餘的部份則用來指定兩個引數的位址。&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align:center; background-color:#CCCCCC;&amp;quot; | 運算碼&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center; background-color:#9999FF;&amp;quot; | 模式&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center; background-color:#99FF99;&amp;quot; | 暫存器&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center; background-color:#9999FF;&amp;quot; | 模式&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center; background-color:#99FF99;&amp;quot; | 暫存器&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
** MOV（資料搬移）, ADD, SUB（加減法）, BIT（位元測試）, BIC（位元清除）, BIS（改動位元）, XOR（互斥或運算）。&lt;br /&gt;
* 程式控制指令 - 指令雙字元組的第一部分用來指定動作，而第二部份則用來指定要執行的程式碼位址。&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px;&amp;quot;|&lt;br /&gt;
| style=&amp;quot;width:15px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align:center; background-color:#CCCCCC;&amp;quot; | 運算碼&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align:center; background-color:#9999FF;&amp;quot; | 位移值&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
** BR（無條件分支）, BNE（非零值時分支）, BEQ（數值為零時分支）, BPL（正數時分支）, BMI（負數值時分支）, BVC（溢位清除時分支）, BVS（發生溢位時分支）, BCC（進位清除時分支）, BCS（發生進位時分支）。&lt;br /&gt;
** BLE（分支if &amp;lt;= 0）, BGE（分支if &amp;gt;= 0）, BLT（分支if &amp;lt; 0）, BGT（分支if &amp;gt; 0，正負號比較）&lt;br /&gt;
** BLO（小於時分支）, BHI（大於時分支）, BLOS（小於或等於時分支）, BHIS（大於或等於時分支，無正負號比較）&lt;br /&gt;
** SOB（暫存器減一後為零時分支）。&lt;br /&gt;
* 跳躍與子程序指令&lt;br /&gt;
** JMP（跳躍）, JSR（跳入副程式）, RTS（自副程式跳回主程式）&lt;br /&gt;
** EMT（模擬器錯誤時觸發）, TRAP, BPT（中斷點觸發）, IOT（輸出入錯誤時觸發）, RTI &amp;amp; RTT（自副程式跳回時觸發）&lt;br /&gt;
* 其他指令&lt;br /&gt;
&lt;br /&gt;
** HALT, WAIT（等候中斷觸發）, RESET（重置UNIBUS）, MTPD（移至前一個資料空間）, MTPI（移至前一個指令空間）, MFPD（移自前一個資料空間）, MFPI（移自前一個指令空間）, MTPS（移至處理器狀態字元組）, MFPS（移自處理器狀態字元組）&lt;br /&gt;
&lt;br /&gt;
* 條件碼操作&lt;br /&gt;
** CLC, CLV, CLZ, CLN, CCC（清除相關的條件碼）, SEC, SEV, SEZ, SEN, SCC（設定相關的條件碼）&lt;br /&gt;
** 處理器狀態字元組（processor status word - 簡稱PSW）的狀態碼共有四種：&lt;br /&gt;
*** N負數&lt;br /&gt;
*** Z零值&lt;br /&gt;
*** V溢位&lt;br /&gt;
*** C進位&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;擴充指令集&amp;quot;（EIS），在11/35/40和11/03為選購，在更新的處理器則為內建功能&lt;br /&gt;
** MUL, DIV暫存器組的整數相乘與相除&lt;br /&gt;
** ASH, ASHC算數位元位移暫存器或暫存器組，正數位移向左，負數向右&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;浮點數指令集&amp;quot;（FIS），在11/35/40和11/03為選購&lt;br /&gt;
** FADD, FSUB, FMUL, FDIV堆疊位址上的單精數運算，由暫存器定址&lt;br /&gt;
* &amp;quot;浮點數處理器&amp;quot;（FPP），在11/45和大部分該系列的機種為選購&lt;br /&gt;
** 完整的浮點數運算，包含單精數與倍精數運算子，以浮點狀態暫存器指定精確度&lt;br /&gt;
** 單精浮點數運算的資料格式為IEEE 754格式的基礎：正負位元，8位元指數，23位元底數與第24位隱藏用&lt;br /&gt;
&lt;br /&gt;
* 商用指令集 (CIS), 11/23/24為選購微碼，11/44為附加模組與11/74的其中一版&lt;br /&gt;
** 支援[[COBOL]]與[[Dibol]]的多種字串與十進位數相關指令&lt;br /&gt;
&lt;br /&gt;
== 組合語言範例 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Papertape.jpg|thumb|PDP-11使用的[[打孔帶]]]]&lt;br /&gt;
&lt;br /&gt;
以下是一個完整的&amp;quot;[[Hello world program|Hello, world!]]&amp;quot;巨集組合語言程式，可以在組譯後於[[RT-11]]執行：&lt;br /&gt;
&lt;br /&gt;
.TITLE HELLO WORLD&lt;br /&gt;
.MCALL .TTYOUT,.EXIT&lt;br /&gt;
HELLO:: MOV #MSG,R1；字串起始位址&lt;br /&gt;
1$: MOVB (R1)+,R0；迴圈取得下一個字元&lt;br /&gt;
BEQ DONE；遇到字串結尾跳出&lt;br /&gt;
.TTYOUT；輸出至TTY&lt;br /&gt;
BR 1$；迴圈結尾&lt;br /&gt;
DONE: .EXIT&lt;br /&gt;
&lt;br /&gt;
MSG: .ASCIZ /Hello, world!/&lt;br /&gt;
.END HELLO&lt;br /&gt;
&lt;br /&gt;
假設檔名為&amp;lt;tt&amp;gt;HELLO.MAC&amp;lt;/tt&amp;gt;，RT-11的組譯，連結與執行的指令為：&lt;br /&gt;
&lt;br /&gt;
.MACRO HELLO&lt;br /&gt;
ERRORS DETECTED: 0&lt;br /&gt;
&lt;br /&gt;
.LINK HELLO&lt;br /&gt;
&lt;br /&gt;
.R HELLO&lt;br /&gt;
Hello, world!&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
（RT-11的命令提示字元為&amp;quot;&amp;lt;tt&amp;gt;.&amp;lt;/tt&amp;gt;&amp;quot;）而更複雜的MACRO-11程式，以下是兩個隨意選自Kevin Murrell&amp;#039;s KPUN.MAC&amp;lt;ref&amp;gt;[http://www.ps8computing.co.uk/PDP11/kpun_mac.htm KPUN.MAC]{{Wayback|url=http://www.ps8computing.co.uk/PDP11/kpun_mac.htm |date=20060822202204 }}&amp;lt;/ref&amp;gt;與Farba Research&amp;#039;s JULIAN&amp;lt;ref&amp;gt;[https://web.archive.org/web/20080905182149/http://www.farbaresearch.com/examples/julian.htm JULIAN]&amp;lt;/ref&amp;gt;程式。更進階的PDP-11函式庫程式碼可免費從Metalab&amp;lt;ref&amp;gt;[http://www.ibiblio.org/pub/academic/computer-science/history/pdp-11/ Metalab]{{Wayback|url=http://www.ibiblio.org/pub/academic/computer-science/history/pdp-11/ |date=20060923034136 }}&amp;lt;/ref&amp;gt;和Trailing Edge&amp;lt;ref&amp;gt;[http://pdp-11.trailing-edge.com/ Trailing Edge]{{Wayback|url=http://pdp-11.trailing-edge.com/ |date=20060909055740 }}&amp;lt;/ref&amp;gt;來查閱。&lt;br /&gt;
&lt;br /&gt;
這些程式也可以在PDP-11模擬器上運行。[[Bob Supnik]]所寫的名為[[SIMH]]模擬器，可以優秀地模擬PDP-11與許多其他的架構，同時包含了軟體套件與原生作業系統（包含RT-11）。&lt;br /&gt;
&lt;br /&gt;
== PDP-11的機種 ==&lt;br /&gt;
&lt;br /&gt;
PDP-11處理器依據其原始設計，以及I/O匯流排的種類，可以歸類為以下幾種系列。在這些類別當中，大部份都有兩種以上的版本，其中一種為[[OEM]]代工的機型，另一種則是提供給最終使用者。&lt;br /&gt;
&lt;br /&gt;
=== Unibus的機種 ===&lt;br /&gt;
[[File:PDP-11-70-DDS570.jpg|thumb|250px|PDP-11-70]]&lt;br /&gt;
下列機種使用[[Unibus]]作為其擴充匯流排：&lt;br /&gt;
&lt;br /&gt;
* PDP-11（後稱為PDP-11/20）和[[PDP-11/15]] -- 原始，無微程式的處理器，由Jim O&amp;#039;Loughlin所設計。&lt;br /&gt;
* [[PDP-11/35]]和[[11/40]] -- 微程式化的／20後續機型，由Jim O&amp;#039;Loughlin所帶領的團隊設計的。&lt;br /&gt;
* [[PDP-11/45]]，[[11/50]]，和[[11/55]] -- 更快的微程式化的處理器，並且可以使用半導體記憶體或是[[核心記憶體]]。&lt;br /&gt;
* [[PDP-11/70]] -- 11/45的擴充機型，經由獨立記憶體匯流排支援4 [[megabyte|MB]]實體記憶體與2 [[kilobyte|KB]]快取記憶體，並藉由[[Massbus]]提供更快的I/O設備連結。&lt;br /&gt;
* [[PDP-11/05]]和[[11/10]] -- 11/20的精減版。&lt;br /&gt;
* [[PDP-11/34]]和[[11/04]] -- 11/35和11/05的後續精減版。PDP-11/09和11/39機型只有DEC內部文件記載，並沒有生產銷售。PDP-11/34的概念是由Bob Armstrong提出的。&lt;br /&gt;
* [[PDP-11/44]] -- 11/34的擴充型，增加了[[快取記憶體]]和 [[浮點]]運算單元為標準功能。這一型並有一個特別的序列埠終端且支援4 MB實體記憶體。設計團隊由John Sofio所帶領。&lt;br /&gt;
* [[PDP-11/60]] -- 有使用者可程式化微控制碼的PDP-11，這是由Jim O&amp;#039;Loughlin所帶領的另一組團隊所設計的。&lt;br /&gt;
* [[PDP-11/24]] - 最早使用超大形積體電路PDP-11和Unibus，使用&amp;quot;Fonz-11&amp;quot; (F11)晶片組&lt;br /&gt;
* [[PDP-11/84]] - 使用超大形積體電路&amp;quot;Jaws-11&amp;quot; (J11)晶片組&lt;br /&gt;
* [[PDP-11/94]] - J11為基礎，比11/84更快&lt;br /&gt;
&lt;br /&gt;
=== Q-Bus的機種 ===&lt;br /&gt;
&lt;br /&gt;
下列機種使用[[Q-Bus]]作為其擴充匯流排：&lt;br /&gt;
&lt;br /&gt;
* [[PDP-11/03]]（也稱為LSI-11/03）-- 第一個[[大规模集成电路|大型積體電路]]（LSI）技術的PDP-11，使用威騰（[[Western Digital]]）生產的晶片組。&lt;br /&gt;
&lt;br /&gt;
* [[PDP-11/23]] -- 第二代大型積體電路（F-11），早期只支援248KB記憶體，但可以修改支援到4MB記憶體。&lt;br /&gt;
* [[PDP-11/23+]]／MicroPDP-11/23 -- 11/23改良版，在處理器卡上提供更多功能（實際上為四倍大小）&lt;br /&gt;
&lt;br /&gt;
* [[PDP-11/73|MicroPDP-11/73]] -- 第二代大型積體電路PDP，這個系統使用&amp;quot;Jaws-11&amp;quot; (J-11)晶片組。&lt;br /&gt;
&lt;br /&gt;
* [[MicroPDP-11/53]] -- 較慢的11/73有內建記憶體&lt;br /&gt;
&lt;br /&gt;
* [[MicroPDP-11/83]] -- 更快的11/73有內部記憶體連結（PMI）&lt;br /&gt;
&lt;br /&gt;
* [[MicroPDP-11/93]] -- 更快的11/83，最終DEC Q-Bus PDP-11機型。&lt;br /&gt;
&lt;br /&gt;
* [[Mentec M100]] -- Mentec重新設計的11/93，使用J-11晶片組時脈為19.66MHz，含4個內建序列埠，1-4MB內建記憶體，FPU為選購。&lt;br /&gt;
&lt;br /&gt;
* [[Mentec M11]] -- 處理器升級子板，最後的微碼PDP-11架構，指令集是由Mentec設計的。使用TI 8832 ALU和德州儀器[[Texas Instruments]]製造的TI 8818微序列器。&lt;br /&gt;
&lt;br /&gt;
* [[Quickware QED-993]] -- 高性能PDP-11/93處理器升級子板&lt;br /&gt;
&lt;br /&gt;
=== 無匯流排的機種 ===&lt;br /&gt;
&lt;br /&gt;
* PDT-11/110&lt;br /&gt;
* PDT-11/130&lt;br /&gt;
* PDT-11/150&lt;br /&gt;
&lt;br /&gt;
PDT為桌上型系統，以&amp;quot;智慧型終端機&amp;quot;來銷售。其中／110與／130使用[[VT100]]終端機模式。&lt;br /&gt;
&lt;br /&gt;
* PRO-325&lt;br /&gt;
* PRO-350&lt;br /&gt;
* PRO-380&lt;br /&gt;
&lt;br /&gt;
[[DEC Professional (computer)|DEC Professional]]系列為桌上型個人電腦，作為對抗IBM早期基於8088與80286個人電腦的競爭機種。這些機型配備有5 1/4&amp;quot;軟碟機與硬碟機，而325則是沒有配備硬碟的機型。中央處理器為LSI-11產品線，以P/OS為作業系統，這是以[[RSX-11|RSX-11M+]]為基礎的選單式系統。由於設計上刻意避免與PDP-11機種的軟體相容性，其市場上最後失敗的命運並不令人意外。&lt;br /&gt;
&lt;br /&gt;
=== 計劃中但未上市機種 ===&lt;br /&gt;
&lt;br /&gt;
* [[PDP-11/27]] -- Jaws-11機型的實作，計劃採用[[VAXBI Bus]]作為I/O匯流排。&lt;br /&gt;
&lt;br /&gt;
* [[PDP-11/68]] -- PDP-11/60的後續機型，支援4 [[百萬位元組|MB]]的實體記憶體。&lt;br /&gt;
&lt;br /&gt;
* [[PDP-11/74]] -- PDP-11/70擴充為多處理器的機型。最多可以使用四顆處理器，但是電纜線也會因此多到難以管理。另一個11/74的變形則是可以支援多處理器與內建商用指令集。有相當數量的11/74原型機（包含數種不同的子機型）生產出來以及至少二路的多處理器系統提供給客戶作為外部測試（beta test）使用。但是實際上自始至終這個機型都沒有正式的進行銷售過。一套四路的多處理器系統由RSX-11作業系統的開發團隊所維護，作為測試使用。而一套單處理器的版本則作為PDP-11工程一般時程分割之用。11/74之所以沒有上市，主要是由於剛好與新的32位元產品與VAX 11/780這個第一個VAX機型的上市撞期。謠言流傳與[http://www.miim.com/faq/hardware/multipro.html 陰謀論者]{{dead link|date=2017年11月 |bot=InternetArchiveBot |fix-attempted=yes }}認為11/74被取消的原因，是由於其效能相較於11/780系列要來得更佳：鑑於行銷的考量，推出效能更好的的PDP-11機型將會影響並減緩客戶轉移到新的VAX機型的速度。然而，在該領域中維護產品的能力才是主要的原因。要說是陰謀論也好，DEC始終無法成功地將其所有的客戶從PDP-11轉移到VAX系列，這個主要的原因不是在於效能好壞，而是在於PDP-11優良的即時回應能力。&lt;br /&gt;
&lt;br /&gt;
=== 特殊用途版本 ===&lt;br /&gt;
&lt;br /&gt;
[[File:GT40 Lunar Lander.jpg|thumb|right|250px|運行『登月小艇』遊戲的DEC GT40]]&lt;br /&gt;
&lt;br /&gt;
* GT40 -- 使用PDP-11/05的向量圖形終端機&lt;br /&gt;
* [[GT44]] -- 使用PDP-11/40的向量圖形終端機&lt;br /&gt;
* [[H-11]] -- [[Heathkit]]代製版的LSI-11/03&lt;br /&gt;
* [[VT103]] -- VT100使用LSI-11背版&lt;br /&gt;
* VT173 -- 使用PDP-11/03的頂級終端機系列&lt;br /&gt;
* [[MINC-11]] -- 使用PDP-11/03或11/23的實驗室系統&lt;br /&gt;
* [[C.mmp]] -- 來自[[卡內基美隆大學]]的多處理器系統&lt;br /&gt;
&lt;br /&gt;
=== 海盜版相容機 ===&lt;br /&gt;
&lt;br /&gt;
由於PDP-11相當風行的緣故，在当时遭受禁運的[[东欧]][[社会主义]]國家有許多未經授權的相容機被生產出來。有些甚至與DEC的PDP-11各系列接腳相容，而可以與原廠產品共用週邊設備與軟體。這些包含了：&lt;br /&gt;
&lt;br /&gt;
* [[SM-4]]，[[SM-1420]]，[[SM-1600]]，[[Electronics BK-0010]]，[[DVK]]，[[UKNC]]（[[蘇聯]]）&lt;br /&gt;
* [[SM-4]]，[[SM-1420]]，[[IZOT-1016]]與週邊設備（[[保加利亞]]）。&lt;br /&gt;
* [[SM-1420]]（[[東德]]）&lt;br /&gt;
* [[Mera]]（[[波蘭]]）&lt;br /&gt;
* [[SM-4]]（[[匈牙利]]）&lt;br /&gt;
* 獨立設備（[[羅馬尼亞]]）&lt;br /&gt;
&lt;br /&gt;
== 作業系統 ==&lt;br /&gt;
&lt;br /&gt;
PDP-11有數種可用的[[作業系統]]&lt;br /&gt;
&lt;br /&gt;
迪吉多電腦：&lt;br /&gt;
{{div col|colwidth=48em}}&lt;br /&gt;
* DOS/BATCH&lt;br /&gt;
* [[RSX-11|IAS]]&lt;br /&gt;
* [[RSX-11|P/OS]]&lt;br /&gt;
* [[RSX-11]]&lt;br /&gt;
* CAPS-11&lt;br /&gt;
* [[RT-11]]&lt;br /&gt;
* [[RSTS/E]]&lt;br /&gt;
* [[Ultrix]]-11&lt;br /&gt;
{{div col end}}&lt;br /&gt;
協力廠商：&lt;br /&gt;
{{div col|colwidth=48em}}&lt;br /&gt;
* [[ANDOS]]&lt;br /&gt;
* [[MKDOS]]&lt;br /&gt;
* [[MONECS]]&lt;br /&gt;
* [[CSIDOS]]&lt;br /&gt;
* [[TRIPOS]]&lt;br /&gt;
* [[MUMPS]]&lt;br /&gt;
* [[Unix]]（有許多版本，包含[[Version 7 Unix]]與[[Berkeley Software Distribution|2BSD]]）&lt;br /&gt;
** [[DEMOS]]（[[蘇聯]]）&lt;br /&gt;
* [[TSX-Plus]]&lt;br /&gt;
{{div col end}}&lt;br /&gt;
&lt;br /&gt;
==引用==&lt;br /&gt;
{{reflist|2}}&lt;br /&gt;
&lt;br /&gt;
== 外部連結 ==&lt;br /&gt;
&lt;br /&gt;
* [https://web.archive.org/web/20110514104628/http://www.village.org/pdp11/faq.html PDP-11的FAQ]&lt;br /&gt;
* [http://www.pdp11.org 保留PDP-11系列的16位元迷你電腦]{{Wayback|url=http://www.pdp11.org/ |date=20200919121039 }}&lt;br /&gt;
* [http://www.psych.usyd.edu.au/pdp-11/ 另一個PDP-11愛好者網站]{{Wayback|url=http://www.psych.usyd.edu.au/pdp-11/ |date=20060918155407 }}&lt;br /&gt;
* [http://www.pdp11.org.ru/ 俄國PDP-11相容機]{{Wayback|url=http://www.pdp11.org.ru/ |date=20060822080815 }}（俄語網站）。&lt;br /&gt;
* [https://web.archive.org/web/20060830200334/http://www.bashedu.ru/konkurs/tarhov/english/index_e.htm 蘇聯計算機歷史博物館]&lt;br /&gt;
* [[Gordon Bell]]與Bill Strecker於1975年發表的論文：[http://research.microsoft.com/users/GBell/Digital/Bell_Strecker_What_we%20_learned_fm_PDP-11c%207511.pdf 我們從PDP-11學到了什麼]{{Wayback|url=http://research.microsoft.com/users/GBell/Digital/Bell_Strecker_What_we%20_learned_fm_PDP-11c%207511.pdf |date=20060829090753 }}&lt;br /&gt;
* [http://research.microsoft.com/users/GBell/Digital/DECMuseum.htm Gordon Bell的網站]{{Wayback|url=http://research.microsoft.com/users/GBell/Digital/DECMuseum.htm |date=20060901020231 }}可以找到更多的論文與連結。&lt;br /&gt;
* [http://www.telegraphics.com.au/sw/info/lcc-pdp11.html PDP-11後端程式]{{Wayback|url=http://www.telegraphics.com.au/sw/info/lcc-pdp11.html |date=20060820205707 }}（程式範本產生器）支持可重定位ANSI [[Little C compiler|Little C]]編譯器&lt;br /&gt;
* [https://web.archive.org/web/20060813131029/http://www.mentec-inc.com/ Mentec]，PDP-11系統軟體目前的所有者（除IAS外）&lt;br /&gt;
&lt;br /&gt;
[[Category:迷你電腦]]&lt;br /&gt;
[[Category:迪吉多硬體]]&lt;br /&gt;
[[Category:1970年面世的產品]]&lt;/div&gt;</summary>
		<author><name>imported&gt;ExultantEditor</name></author>
	</entry>
</feed>