英特爾 8080 微處理器是英特爾設計和製造的第二款 8 位微處理器。它於 1974 年 4 月首次亮相，是早期 8008 設計的擴充套件和增強版本，儘管它們之間沒有二進位制相容性。最初規定的時鐘頻率或頻率限制為 2 MHz，常見指令使用 4、5、7、10 或 11 個週期。因此，該處理器能夠每秒執行數十萬條指令。後來推出了兩個更快的變種，8080A1 和 8080A2，它們的時鐘頻率限制分別為 3125 MHz 和 263 MHz。 8080 在大多數應用中需要兩個支援晶片才能工作：i8224 時鐘生成器 驅動器和 i8228 匯流排控制器。它採用 N 型金氧半導體邏輯（NMOS）實現，使用非飽和增強模式電晶體作為負載 similar to pullup resistors，因此除了主要的電晶體 電晶體邏輯（TTL）相容的 5 V 外，還需要 12 V 和 5 V 的電壓。 儘管早期的微處理器通常用於如計算器、收銀機、計算機終端、工業機器人等大批次生產的裝置中 The 8008 1972 was used for interpolation and control in ASEAs now ABB first line of general industrial robots introduced October 1973，8080 在更廣泛的應用中取得了更大的成功，它在很大程度上被認為是微型計算機行業的起點。 其受歡迎的幾個因素包括：其 40 腳封裝比 18 腳的 8008 更易於介面，並且使其資料匯流排更高效；其 NMOS 實現使其電晶體比 P 型金氧半導體邏輯（PMOS）的 8008 更快，同時透過使其與 TTL 相容簡化了介面；可用的支援晶片種類更多；其指令集相對於 8008 有所增強 The enhancements were largely based on customer feedback and Federico Faggin and others listening to minicomputeroriented professionals about certain problems and lack of features in the 8008 architecture Source 8008 and 8080 oral histories；以及其完整的 16 位地址匯流排（相對於 8008 的 14 位）使其能夠訪問 64 KB 的記憶體，是 8008 範圍的四倍。它被用於 Altair 8800 和後續的 S100 匯流排個人計算機，直到被 Z80 取代，並且是由 Gary Kildall 開發的 CPM 作業系統的原始目標 CPU。 8080 直接影響了後來的 x86 架構。英特爾設計了 8086，使其組合語言與 8080 足夠相似，大多數指令可以直接對映到彼此上，這樣就可以在 8086 上執行轉譯的 8080 彙編程式碼。 歷史 微處理器的客戶對採用 8008 持謹慎態度，原因在於它存在諸多限制，如單一定址模式、低時鐘速度、低引腳數以及小型片上棧，這些因素限制了軟體的規模和複雜度。對於 8080 的設計提案有很多，範圍從僅僅給 8008 新增棧指令到完全脫離所有之前英特爾的架構。最終的設計是各種提案之間的一種妥協。 Federico Faggin 是 8080 架構的發起人，他在 1972 年初向英特爾的管理層提出了這一晶片設計，並推動了它的實施。六個月後，他終於獲得了開發的許可。Faggin 於 1972 年 11 月從日本聘請了與他一起設計 4004 的 Masatoshi Shima。Shima 在 Faggin 的指導下進行了詳細設計，使用了 Faggin 為 4000 系列創造的隨機邏輯矽門設計方法。 8080 被明確設計為一個面向更廣泛客戶的通用微處理器。大量的開發工作致力於嘗試將 8008 的輔助晶片的功能整合到一個封裝中。開發初期就決定 8080 不與 8008 二進位制相容，而是選擇源相容性，一旦透過轉譯器執行，就可以允許新軟體不受 8008 同樣的限制。出於同樣的原因，以及為了擴充套件基於棧的例程和中斷的能力，棧被移至外部記憶體。 注意到程式設計師在大型機系統中對通用暫存器的專用使用，晶片架構師 Stanley Mazor 決定 8080 的暫存器將是專用的，暫存器對有不同的用途集。這也使得工程師能夠更有效地將電晶體用於其他目的。 Shima 在 1973 年 8 月完成了佈局。在 NMOS 製造調整之後，一個 8080 的原型在 1974 年 1 月完成。它有一個缺陷，即使用標準 TTL 裝置驅動時，因為高電流流入狹窄的線路而增加了地線電壓。在 Shima 對原型進行特性分析之前，英特爾已經按照銷售部門的指示生產了 40000 個 8080 單元。它被髮布時要求使用低功耗肖特基 TTL（LS TTL）裝置。8080A 修正了這個缺陷。 功能 編譯模型 Intel 8080 是 8008 的後繼者。它使用與 8008 相同的基本指令集和暫存器模型，儘管它既不與其前身相容原始碼，也不相容二進位制程式碼。8008 中的每條指令在 8080 中都有等效指令。8080 還在其指令集中添加了 16 位操作。而 8008 需要使用 HL 暫存器對來間接訪問其 14 位記憶體空間，8080 添加了定址模式，允許直接訪問其完整的 16 位記憶體空間。8008 的內部 7 級下壓呼叫堆疊被專用的 16 位堆疊指標（SP）暫存器替換。8080 的 40 引腳 DIP 封裝允許它提供 16 位地址匯流排和 8 位資料匯流排，實現對 64 KiB（216 位元組）記憶體的訪問。 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 bit position 主暫存器 主暫存器 主暫存器 主暫存器 主暫存器 主暫存器 主暫存器 主暫存器 主暫存器 主暫存器 主暫存器 主暫存器 主暫存器 主暫存器 主暫存器 主暫存器 主暫存器 A A A A A A A A Flags Flags Flags Flags Flags Flags Flags Flags 程式狀態字 B B B B B B B B C C C C C C C C B D D D D D D D D E E E E E E E E D H H H H H H H H L L L L L L L L H 間接地址 索引暫存器 索引暫存器 索引暫存器 索引暫存器 索引暫存器 索引暫存器 索引暫存器 索引暫存器 索引暫存器 索引暫存器 索引暫存器 索引暫存器 索引暫存器 索引暫存器 索引暫存器 索引暫存器 索引暫存器 SP SP SP SP SP SP SP SP SP SP SP SP SP SP SP SP 棧指標 程式計數器 程式計數器 程式計數器 程式計數器 程式計數器 程式計數器 程式計數器 程式計數器 程式計數器 程式計數器 程式計數器 程式計數器 程式計數器 程式計數器 程式計數器 程式計數器 程式計數器 PC PC PC PC PC PC PC PC PC PC PC PC PC PC PC PC 程式計數器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 狀態暫存器 S Z 0 AC 0 P 1 C Flags 暫存器 處理器有七個 8 位暫存器（A、B、C、D、E、H 和 L），其中 A 是主 8 位累加器。其他六個暫存器可以根據特定指令作為單獨的 8 位暫存器或在三個 16 位暫存器對（BC、DE 和 HL，在 Intel 文件中分別稱為 B、D 和 H）中使用。某些指令還允許 HL 暫存器對作為（有限的）16 位累加器使用。偽暫存器 M，指的是由 HL 指向的解引用記憶體位置，幾乎可以在任何其他暫存器可以使用的地方使用。8080 有一個 16 位的堆疊指標指向記憶體，替換了 8008 的內部堆疊，並有一個 16 位的程式計數器。 標誌 處理器維護內部標誌位（狀態暫存器），這些標誌位指示算術和邏輯指令的結果。只有特定的指令會影響標誌位。標誌位包括： 符號（S），如果結果為負則設定。 零（Z），如果結果為零則設定。 奇偶校驗（P），如果結果中 1 的位數為偶數則設定。 進位（C），如果最後一次加法操作產生了進位或者最後一次減法操作需要借位則設定。 輔助進位（AC 或 H），用於二進位制編碼的十進位制算術（BCD）。 特定指令可以設定或反轉進位位。條件分支指令測試各種標誌狀態位。累加器和標誌位一起被稱為 PSW，或程式狀態字。PSW 可以被推入或從堆疊中彈出。 命令與指令 與許多其他 8 位處理器一樣，所有指令都編碼為一個位元組（包括暫存器編號，但不包括立即數資料），以簡化操作。有些可以跟隨一到兩個位元組的資料，這可以是立即數運算元、記憶體地址或埠號。像更高階的處理器一樣，它有自動 CALL 和 RET 指令用於多級過程呼叫和返回（甚至可以像跳轉一樣有條件地執行），以及用於在機器堆疊上儲存和恢復任何 16 位暫存器對的指令。存在八個一位元組的呼叫指令（RST），用於在固定地址 00h、08h、10h、、38h 處的子程式。這些旨在由外部硬體提供，以呼叫相應的中斷服務例程，但也經常用作快速系統呼叫。執行最慢的指令是 XTHL，用於將 HL 暫存器對與堆疊指標指示的地址處儲存的值交換。 8 位指令 所有具有兩個運算元的 8 位操作只能在 8 位累加器（A 暫存器）上執行。另一個運算元可以是立即值、另一個 8 位暫存器或由 16 位暫存器對 HL 地址的記憶體位元組。增量和減量操作可以在任何 8 位暫存器或 HL 地址的記憶體位元組上執行。支援直接複製任意兩個 8 位暫存器之間以及任何 8 位暫存器和 HL 地址的記憶體位元組之間。由於 MOV 指令的規則編碼（使用了可用操作碼空間的四分之一），存在將暫存器複製到其自身的冗餘程式碼，除了用於延遲外幾乎無用。然而，系統性的 MOV MM 操作碼被用來編碼停止（HLT）指令，直到外部重置或中斷髮生時停止執行。 16 位操作 雖然 8080 通常是一個 8 位處理器，它有限地能夠執行 16 位操作。任何三個 16 位暫存器對（BC、DE 或 HL，在 Intel 文件中分別稱為 B、D、H）或 SP 可以使用載入立即 16 位值，使用 和 進行增量或減量操作，或使用 加到 HL 上。透過將 HL 加到其自身，可以使用一條指令實現與 16 位算術左移相同的結果。唯一影響任何標誌的 16 位指令是 ，它設定 CY（進位）標誌，以允許進行程式設計的 24 位或 32 位算術（或更大），這對於實現浮點算術是必需的。可以使用 和 分配堆疊幀。可以使用，執行對計算指標的跳轉。 從直接定址的記憶體中載入 HL， 同樣儲存 HL。8080 instruction encoding ClassicCMPorg Retrieved on October 23 2011 指令交換 HL 和 DE 暫存器對的值。XTHL 與堆疊上最後推入的項和 HL 交換。 指令集 操作碼 操作碼 操作碼 操作碼 操作碼 操作碼 操作碼 操作碼 運算元 運算元 助記符 週期數 描述 7 6 5 4 3 2 1 0 b2 b3 助記符 週期數 描述 0 0 0 0 0 0 0 0 NOP 4 No operation 0 0 RP RP 0 0 0 1 datlo dathi LXI rpdata 10 RP data 0 0 RP RP 0 0 1 0 STAX rp 7 RP A BC or DE only 0 0 RP RP 0 0 1 1 INX rp 5 RP RP 1 0 0 DDD DDD DDD 1 0 0 INR ddd 510 DDD DDD 1 0 0 DDD DDD DDD 1 0 1 DCR ddd 510 DDD DDD 1 0 0 DDD DDD DDD 1 1 0 data MVI ddddata 710 DDD data 0 0 RP RP 1 0 0 1 DAD rp 10 HL HL RP 0 0 RP RP 1 0 1 0 LDAX rp 7 A RP BC or DE only 0 0 RP RP 1 0 1 1 DCX rp 5 RP RP 1 0 0 0 0 0 1 1 1 RLC 4 A17 A06 A0 Cy A7 0 0 0 0 1 1 1 1 RRC 4 A06 A17 A7 Cy A0 0 0 0 1 0 1 1 1 RAL 4 A17 A06 Cy A7 A0 Cy 0 0 0 1 1 1 1 1 RAR 4 A06 A17 Cy A0 A7 Cy 0 0 1 0 0 0 1 0 addlo addhi SHLD add 16 add HL 0 0 1 0 0 1 1 1 DAA 4 If A03 9 OR AC 1 then A A 6 then if A47 9 OR Cy 1 then A A 0x60 0 0 1 0 1 0 1 0 addlo addhi LHLD add 16 HL add 0 0 1 0 1 1 1 1 CMA 4 A A 0 0 1 1 0 0 1 0 addlo addhi STA add 13 add A 0 0 1 1 0 1 1 1 STC 4 Cy 1 0 0 1 1 1 0 1 0 addlo addhi LDA add 13 A add 0 0 1 1 1 1 1 1 CMC 4 Cy Cy 0 1 DDD DDD DDD SSS SSS SSS MOV dddsss 57 DDD SSS 0 1 1 1 0 1 1 0 HLT 7 Halt 1 0 ALU ALU ALU SSS SSS SSS ADD ADC SUB SBB ANA XRA ORA CMP sss 47 A A ALU operation SSS 1 1 CC CC CC 0 0 0 Rcc 511 If cc true PC SP SP SP 2 1 1 RP RP 0 0 0 1 POP rp 10 RP SP SP SP 2 1 1 CC CC CC 0 1 0 addlo addhi Jcc add 10 If cc true PC add 1 1 0 0 0 0 1 1 addlo addhi JMP add 10 PC add 1 1 CC CC CC 1 0 0 addlo addhi Ccc add 1117 If cc true SP SP 2 SP PC PC add 1 1 RP RP 0 1 0 1 PUSH rp 11 SP SP 2 SP RP 1 1 ALU ALU ALU 1 1 0 data ADI ACI SUI SBI ANI XRI ORI CPI data 7 A A ALU operation data 1 1 N N N 1 1 1 RST n 11 SP SP 2 SP PC PC N x 8 1 1 0 0 1 0 0 1 RET 10 PC SP SP SP 2 1 1 0 0 1 1 0 1 addlo addhi CALL add 17 SP SP 2 SP PC PC add 1 1 0 1 0 0 1 1 port OUT port 10 Port A 1 1 0 1 1 0 1 1 port IN port 10 A Port 1 1 1 0 0 0 1 1 XTHL 18 HL SP 1 1 1 0 1 0 0 1 PCHL 5 PC HL 1 1 1 0 1 0 1 1 XCHG 4 HL DE 1 1 1 1 0 0 1 1 DI 4 Disable interrupts 1 1 1 1 1 0 0 1 SPHL 5 SP HL 1 1 1 1 1 0 1 1 EI 4 Enable interrupts 7 6 5 4 3 2 1 0 b2 b3 助記符 週期數 描述 SSS DDD SSS DDD SSS DDD SSS DDD SSS DDD 2 1 0 CC CC ALU RP B B B B B 0 0 0 NZ NZ ADD ADI A A arg BC C C C C C 0 0 1 Z Z ADC ACI A A arg Cy DE D D D D D 0 1 0 NC NC SUB SUI A A arg HL E E E E E 0 1 1 C C SBB SBI A A arg Cy SP or PSW H H H H H 1 0 0 PO PO ANA ANI A A arg L L L L L 1 0 1 PE PE XRA XRI A A arg M M M M M 1 1 0 P P ORA ORI A A arg A A A A A 1 1 1 N N CMP CPI A arg SSS DDD SSS DDD SSS DDD SSS DDD SSS DDD 2 1 0 CC CC ALU 輸入 輸出方案 輸入輸出埠空間 8080 支援多達 256Note Some Intel datasheets from the 1970s advertise 512 IO ports because they count input and output ports separately 個輸入 輸出（IO）埠，透過使用埠地址作為運算元的專用 IO 指令訪問。這種 IO 對映方案被認為是一個優勢，因為它釋放了處理器有限的地址空間。許多 CPU 架構相反使用所謂的記憶體對映 IO（MMIO），在這種設計中，RAM 和外圍晶片使用共同的地址空間。這消除了對專用 IO 指令的需求，儘管這樣的設計可能存在的一個缺點是，由於外圍裝置通常比記憶體慢，因此必須使用特殊硬體來插入等待狀態。然而，在一些簡單的 8080 計算機中，IO 確實被當作記憶體單元進行定址，即 記憶體對映，從而不使用 IO 命令。IO 定址有時也可以利用處理器將相同的 8 位埠地址輸出到低地址位元組和高地址位元組的事實（即，IN 05h 會在 16 位地址總線上放置地址 0505h）。類似的 IO 埠方案被用在向後相容的 Zilog Z80 和 Intel 8085，以及密切相關的 x86 微處理器系列中。 獨立的堆疊空間 處理器狀態字中的一個位（見下文）指示處理器正在從堆疊訪問資料。使用這個訊號，可以實現一個獨立的堆疊記憶體空間。這個功能很少被使用。 狀態字 對於更高階的系統，在每個機器週期的開始，處理器在資料匯流排上放置一個八位狀態字。這個位元組包含的標誌決定了是訪問記憶體還是 IO 埠，以及是否需要處理中斷。 中斷系統狀態（啟用或停用）也在一個單獨的引腳上輸出。對於簡單系統，其中不使用中斷，在某些情況下可能會發現這個引腳被用作額外的單位元輸出埠（例如，在蘇聯製造的流行的 Radio86RK 計算機）。 示例程式碼 以下是 80808085 彙編器原始碼，用於一個名為 memcpy 的子程式，該子程式將給定大小的資料塊從一個位置複製到另一個位置。資料塊一次複製一個位元組，資料移動和迴圈邏輯使用 16 位操作。 1000 1000 1000 78 1001 B1 1002 C8 1003 1A 1004 77 1005 13 1006 23 1007 0B 1008 78 1009 B1 100A C2 03 10 100D C9 memcpy 將記憶體塊從一個位置複製到另一個位置。 輸入暫存器 BC 要複製的位元組數 DE 源資料塊的地址 HL 目標資料塊的地址 返回暫存器 BC 零 org 1000h 起始地址為 1000h memcpy public mov ab 將暫存器 B 的值複製到暫存器 A ora c 暫存器 A 與暫存器 C 進行按位或操作，結果存入暫存器 A rz 如果零標誌被置位，則返回 loop ldax d 從 DE 指向的地址載入資料到 A mov ma 將暫存器 A 的內容儲存到 HL 指向的地址 inx d 增加 DE inx h 增加 HL dcx b BC 減一（不影響標誌位） mov ab 將 B 複製到 A（以便將 BC 與零比較） ora c A A C （B 和 C 都是零嗎？） jnz loop 如果零標誌未被置位，則跳轉到 loop ret 返回 針腳 地址匯流排擁有自己的 16 個針腳，而資料匯流排有 8 個可用的針腳，無需任何複用。使用另外兩個針腳（讀和寫訊號），可以非常容易地組裝簡單的微處理器裝置。僅需為獨立的 IO 空間、中斷和 DMA 新增解碼處理器針腳訊號的晶片。 然而，針腳的負載能力是有限的；即使是簡單的計算機通常也需要匯流排放大器。 處理器需要三個電源（5V、5V 和 12V）和兩個非重疊的高幅度同步訊號。然而，至少在蘇聯後期的版本КР580ВМ80А能夠僅使用單一的 5V 電源工作，將 12V 針腳連線到 5V，將 5V 針腳接地。 隨晶片提供的文件中的針腳佈局表，如下描述針腳： 針腳 訊號 型別 指令 1 A10 Output 地址匯流排 10 2 GND 地 3 D4 Bidirectional 雙向資料匯流排，處理器還會暫時在此設定 處理器狀態，提供有關處理器當前正在執行的操作的資訊： D0 讀取中斷命令。響應中斷訊號時，處理器正在讀取並執行一個帶有此標誌的任意命令。通常，支援晶片會提供子程式呼叫命令（CALL 或 RST），將控制權轉移到中斷處理程式碼 D1 讀取（低電平意味著寫入） D2 訪問堆疊（可能最初計劃了一個單獨的堆疊記憶體空間） D3 無操作，已被 HLT 指令停止 D4 向輸出埠寫入資料 D5 讀取可執行指令的第一個位元組 D6 從輸入埠讀取資料 D7 從記憶體讀取資料 4 D5 Bidirectional 雙向資料匯流排，處理器還會暫時在此設定 處理器狀態，提供有關處理器當前正在執行的操作的資訊： D0 讀取中斷命令。響應中斷訊號時，處理器正在讀取並執行一個帶有此標誌的任意命令。通常，支援晶片會提供子程式呼叫命令（CALL 或 RST），將控制權轉移到中斷處理程式碼 D1 讀取（低電平意味著寫入） D2 訪問堆疊（可能最初計劃了一個單獨的堆疊記憶體空間） D3 無操作，已被 HLT 指令停止 D4 向輸出埠寫入資料 D5 讀取可執行指令的第一個位元組 D6 從輸入埠讀取資料 D7 從記憶體讀取資料 5 D6 Bidirectional 雙向資料匯流排，處理器還會暫時在此設定 處理器狀態，提供有關處理器當前正在執行的操作的資訊： D0 讀取中斷命令。響應中斷訊號時，處理器正在讀取並執行一個帶有此標誌的任意命令。通常，支援晶片會提供子程式呼叫命令（CALL 或 RST），將控制權轉移到中斷處理程式碼 D1 讀取（低電平意味著寫入） D2 訪問堆疊（可能最初計劃了一個單獨的堆疊記憶體空間） D3 無操作，已被 HLT 指令停止 D4 向輸出埠寫入資料 D5 讀取可執行指令的第一個位元組 D6 從輸入埠讀取資料 D7 從記憶體讀取資料 6 D7 Bidirectional 雙向資料匯流排，處理器還會暫時在此設定 處理器狀態，提供有關處理器當前正在執行的操作的資訊： D0 讀取中斷命令。響應中斷訊號時，處理器正在讀取並執行一個帶有此標誌的任意命令。通常，支援晶片會提供子程式呼叫命令（CALL 或 RST），將控制權轉移到中斷處理程式碼 D1 讀取（低電平意味著寫入） D2 訪問堆疊（可能最初計劃了一個單獨的堆疊記憶體空間） D3 無操作，已被 HLT 指令停止 D4 向輸出埠寫入資料 D5 讀取可執行指令的第一個位元組 D6 從輸入埠讀取資料 D7 從記憶體讀取資料 7 D3 Bidirectional 雙向資料匯流排，處理器還會暫時在此設定 處理器狀態，提供有關處理器當前正在執行的操作的資訊： D0 讀取中斷命令。響應中斷訊號時，處理器正在讀取並執行一個帶有此標誌的任意命令。通常，支援晶片會提供子程式呼叫命令（CALL 或 RST），將控制權轉移到中斷處理程式碼 D1 讀取（低電平意味著寫入） D2 訪問堆疊（可能最初計劃了一個單獨的堆疊記憶體空間） D3 無操作，已被 HLT 指令停止 D4 向輸出埠寫入資料 D5 讀取可執行指令的第一個位元組 D6 從輸入埠讀取資料 D7 從記憶體讀取資料 8 D2 Bidirectional 雙向資料匯流排，處理器還會暫時在此設定 處理器狀態，提供有關處理器當前正在執行的操作的資訊： D0 讀取中斷命令。響應中斷訊號時，處理器正在讀取並執行一個帶有此標誌的任意命令。通常，支援晶片會提供子程式呼叫命令（CALL 或 RST），將控制權轉移到中斷處理程式碼 D1 讀取（低電平意味著寫入） D2 訪問堆疊（可能最初計劃了一個單獨的堆疊記憶體空間） D3 無操作，已被 HLT 指令停止 D4 向輸出埠寫入資料 D5 讀取可執行指令的第一個位元組 D6 從輸入埠讀取資料 D7 從記憶體讀取資料 9 D1 Bidirectional 雙向資料匯流排，處理器還會暫時在此設定 處理器狀態，提供有關處理器當前正在執行的操作的資訊： D0 讀取中斷命令。響應中斷訊號時，處理器正在讀取並執行一個帶有此標誌的任意命令。通常，支援晶片會提供子程式呼叫命令（CALL 或 RST），將控制權轉移到中斷處理程式碼 D1 讀取（低電平意味著寫入） D2 訪問堆疊（可能最初計劃了一個單獨的堆疊記憶體空間） D3 無操作，已被 HLT 指令停止 D4 向輸出埠寫入資料 D5 讀取可執行指令的第一個位元組 D6 從輸入埠讀取資料 D7 從記憶體讀取資料 10 D0 Bidirectional 雙向資料匯流排，處理器還會暫時在此設定 處理器狀態，提供有關處理器當前正在執行的操作的資訊： D0 讀取中斷命令。響應中斷訊號時，處理器正在讀取並執行一個帶有此標誌的任意命令。通常，支援晶片會提供子程式呼叫命令（CALL 或 RST），將控制權轉移到中斷處理程式碼 D1 讀取（低電平意味著寫入） D2 訪問堆疊（可能最初計劃了一個單獨的堆疊記憶體空間） D3 無操作，已被 HLT 指令停止 D4 向輸出埠寫入資料 D5 讀取可執行指令的第一個位元組 D6 從輸入埠讀取資料 D7 從記憶體讀取資料 11 5 V 5 伏電源供應。這必須是首先連線的電源，並且是最後斷開的電源，否則處理器將會受損 12 RESET Input 復位。該訊號強制執行位於 0000 地址的命令。其他處理器暫存器的內容不會被修改。這是一個反相輸入（啟用電平為邏輯 0） 13 HOLD Input 直接記憶體訪問請求。請求處理器將資料和地址匯流排切換到高阻抗（斷開連線）狀態 14 INT Input 中斷請求 15 φ2 Input 時鐘發生器訊號的第二相位 16 INTE Output 處理器擁有兩個命令，用於在該引腳上設定 0 或 1 電平。這個引腳通常被用於中斷控制。然而，在簡單的計算機中，它有時被用作單位元輸出埠，用於各種目的 17 DBIN Output 讀 處理器從記憶體或輸入埠讀取資料 18 WR Output 寫 處理器向記憶體或輸出埠寫入資料。這是一個反向輸出，啟用電平為邏輯零 19 SYNC Output 啟用電平表明處理器已經將 狀態字 放置在資料匯流排上。這個狀態字的各個位提供了額外的資訊，以支援獨立的地址和記憶體空間、中斷和直接記憶體訪問。這個訊號在可以用於將資料匯流排上的處理器狀態字寫入某個外部暫存器之前，需要透過額外的邏輯處理，例如，8238 系統控制器和匯流排驅動器 20 5 V 5 伏電源供應 21 HLDA Output 直接記憶體訪問確認。處理器將資料和地址引腳切換到高阻抗狀態，允許其他裝置操縱匯流排 22 φ1 Input 時鐘發生器訊號的第一相位 23 READY Input 等待 利用這個訊號，可以暫停處理器的工作。它還用於支援基於硬體的逐步除錯模式 24 WAIT Output 等待 指示處理器處於等待狀態 25 A0 Output 地址匯流排 26 A1 Output 地址匯流排 27 A2 Output 地址匯流排 28 12 V 12 伏電源供應，這必須是最後連線和第一個斷開的電源 29 A3 Output 地址匯流排；可以根據需求切換到高阻抗狀態 30 A4 Output 地址匯流排；可以根據需求切換到高阻抗狀態 31 A5 Output 地址匯流排；可以根據需求切換到高阻抗狀態 32 A6 Output 地址匯流排；可以根據需求切換到高阻抗狀態 33 A7 Output 地址匯流排；可以根據需求切換到高阻抗狀態 34 A8 Output 地址匯流排；可以根據需求切換到高阻抗狀態 35 A9 Output 地址匯流排；可以根據需求切換到高阻抗狀態 36 A15 Output 地址匯流排；可以根據需求切換到高阻抗狀態 37 A12 Output 地址匯流排；可以根據需求切換到高阻抗狀態 38 A13 Output 地址匯流排；可以根據需求切換到高阻抗狀態 39 A14 Output 地址匯流排；可以根據需求切換到高阻抗狀態 40 A11 Output 地址匯流排；可以根據需求切換到高阻抗狀態 支援晶片 8080 的成功關鍵因素之一是有廣泛的支援晶片可用，提供序列通訊、計數 定時、輸入 輸出、直接記憶體訪問和可程式設計中斷控制等多種功能： 8214 優先順序中斷控制單元 Intel Corporation 8214 Priorty Interrupt Control Unit Intel 8080 Microcomputer Systems Users Manual September 1975 page 5153 from bitsaverorg in PDFIntel Corporation Two LowCost Programmable LSI Device Make Designs Easier To Implement Reduce Cost Of 4bit MCS40 Systems Intel Microcomputer News Volume 3 No 1 January 1976 page 1 8224 時鐘發生器 82288238 系統控制器和匯流排驅動器 8251 通訊控制器 8253 可程式設計間隔定時器 8255 可程式設計外圍介面 8257 DMA 控制器 8259 可程式設計中斷控制器 實現 8080 積體電路使用非飽和增強型負載 nMOS 門，需要額外的電壓（用於負載門偏置）。它是在一個矽門過程中製造的，使用最小特徵尺寸為 6 微米。設計中大約 4500 個電晶體透過單層金屬層互聯，但較高電阻的多晶矽層（一些互聯需要更高的電壓）是用電晶體門實現的。晶片尺寸大約為 20 平方毫米。 CategoryIntel x86 處理器 Category8 位元微處理器 Category1974 年面世