编辑“︁
Intel 8080
”︁(章节)
跳转到导航
跳转到搜索
Template:Editnotice load/content
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
== 功能 == [[File:Intel_8080_arch.svg|right|thumb|i8080 微架构]] === 编译模型 === Intel 8080 是 [[Intel 8008|8008]] 的后继者。它使用与 8008 相同的基本[[指令集架構|指令集]]和[[寄存器]]模型,尽管它既不与其前身[[源代码兼容性|兼容源代码]],也不兼容[[机器码兼容性|二进制代码]]。8008 中的每条指令在 8080 中都有等效指令。8080 还在其指令集中添加了 16 位操作。而 8008 需要使用 HL 寄存器对来间接访问其 14 位内存空间,8080 添加了寻址模式,允许直接访问其完整的 16 位内存空间。8008 的内部 7 级下压调用堆栈被专用的 16 位堆栈指针(SP)寄存器替换。8080 的 40 引脚 [[DIP封裝|DIP 封装]]允许它提供 16 位[[地址總線|地址总线]]和 8 位[[數據總線|数据总线]],实现对 64 [[KiB]](2^16 字节)内存的访问。 {| class="infobox" style="font-size:88%;width:34em;" | style="text-align:center;" |<sup>1</sup><sub>5</sub> | style="text-align:center;" |<sup>1</sup><sub>4</sub> | style="text-align:center;" |<sup>1</sup><sub>3</sub> | style="text-align:center;" |<sup>1</sup><sub>2</sub> | style="text-align:center;" |<sup>1</sup><sub>1</sub> | style="text-align:center;" |<sup>1</sup><sub>0</sub> | style="text-align:center;" |<sup>0</sup><sub>9</sub> | style="text-align:center;" |<sup>0</sup><sub>8</sub> | style="text-align:center;" |<sup>0</sup><sub>7</sub> | style="text-align:center;" |<sup>0</sup><sub>6</sub> | style="text-align:center;" |<sup>0</sup><sub>5</sub> | style="text-align:center;" |<sup>0</sup><sub>4</sub> | style="text-align:center;" |<sup>0</sup><sub>3</sub> | style="text-align:center;" |<sup>0</sup><sub>2</sub> | style="text-align:center;" |<sup>0</sup><sub>1</sub> | style="text-align:center;" |<sup>0</sup><sub>0</sub> |''(bit position)'' |- | colspan="17" |'''主寄存器''' |- style="background:silver;color:black" | colspan="8" style="text-align:center;" |A | colspan="8" style="text-align:center;background:#DDD" |Flags | style="width:auto; background:white; color:black;" |'''程序状态字''' |- style="background:silver;color:black" | colspan="8" style="text-align:center;" |B | colspan="8" style="text-align:center;" |C | style="background:white; color:black;" |'''B''' |- style="background:silver;color:black" | colspan="8" style="text-align:center;" |D | colspan="8" style="text-align:center;" |E | style="background:white; color:black;" |'''D''' |- style="background:silver;color:black" | colspan="8" style="text-align:center;" |H | colspan="8" style="text-align:center;" |L | style="background:white; color:black;" |'''H''' ('''间接地址''') |- | colspan="17" |'''索引寄存器''' |- style="background:silver;color:black" | colspan="16" style="text-align:center;" |SP | style="background:white; color:black;" |'''栈指针''' |- | colspan="17" |'''程序计数器''' |- style="background:silver;color:black" | colspan="16" style="text-align:center;" |PC | style="background:white; color:black;" |'''程序计数器''' |- | colspan="17" |'''状态寄存器''' |- style="background:silver;color:black" | colspan="8" style="text-align:center; background:white" | | style="text-align:center;" |S | style="text-align:center;" |Z | style="text-align:center;" |0 | style="text-align:center;" |<sup>A</sup><sub>C</sub> | style="text-align:center;" |0 | style="text-align:center;" |P | style="text-align:center;" |1 | style="text-align:center;" |C | style="background:white; color:black" |Flags <ref name="AssyLang">{{cite book|title=8080 Assembly Language Programming Manual|date=1975|publisher=Intel|page=22|edition=Rev B|url=https://archive.org/download/intel-8080-assembly-language-programming-manual-1975/Intel%208080%20Assembly%20Language%20Programming%20Manual%20%281975%29.pdf|access-date=29 February 2024}}</ref> |} === 寄存器 === 处理器有七个 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 指令的规则编码(使用了可用操作码空间的四分之一),存在将寄存器复制到其自身的冗余代码({{code|MOV B,B}}),除了用于延迟外几乎无用。然而,系统性的 MOV M,M 操作码被用来编码停止(HLT)指令,直到外部重置或中断发生时停止执行。 ==== 16 位操作 ==== 虽然 8080 通常是一个 8 位处理器,它有限地能够执行 16 位操作。任何三个 16 位寄存器对(BC、DE 或 HL,在 Intel 文档中分别称为 B、D、H)或 SP 可以使用{{code|LXI}}加载立即 16 位值,使用{{code|INX}} 和 {{code|DCX}}进行增量或减量操作,或使用 {{code|DAD}} 加到 HL 上。通过将 HL 加到其自身,可以使用一条指令实现与 16 位算术左移相同的结果。唯一影响任何标志的 16 位指令是 {{code|DAD}},它设置 CY([[进位]])标志,以允许进行编程的 24 位或 32 位[[算术]](或更大),这对于实现[[浮点算术]]是必需的。可以使用 {{code|DAD SP}} 和 {{code|SPHL}} 分配堆栈帧。可以使用 {{code|PCHL}}, 执行对计算指针的跳转。{{code|LHLD}} 从直接寻址的内存中加载 HL,{{code|SHLD}} 同样存储 HL。{{code|XCHG}}<ref>[http://www.classiccmp.org/dunfield/r/8080.txt 8080 instruction encoding] {{Webarchive|url=https://web.archive.org/web/20180305170555/http://www.classiccmp.org/dunfield/r/8080.txt|date=March 5, 2018}}. ClassicCMP.org. Retrieved on October 23, 2011.</ref>指令交换 HL 和 DE 寄存器对的值。XTHL 与堆栈上最后推入的项和 HL 交换。 === 指令集 === {| class="wikitable" style="text-align:center" ! colspan="8" |操作码 ! colspan="2" |操作数 ! rowspan="2" |助记符 ! rowspan="2" |周期数 ! rowspan="2" |描述 |- !7 !6 !5 !4 !3 !2 !1 !0 !b2 !b3 |- |0 |0 |0 |0 |0 |0 |0 |0 |— |— | align="left" |NOP |4 | align="left" |No operation |- |0 |0 | colspan="2" |RP |0 |0 |0 |1 |''datlo'' |''dathi'' | align="left" |LXI ''rp,data'' |10 | align="left" |RP ← ''data'' |- |0 |0 | colspan="2" |RP |0 |0 |1 |0 |— |— | align="left" |STAX ''rp'' |7 | align="left" |(RP) ← A [BC or DE only] |- |0 |0 | colspan="2" |RP |0 |0 |1 |1 |— |— | align="left" |INX ''rp'' |5 | align="left" |RP ← RP + 1 |- |0 |0 | colspan="3" |DDD |1 |0 |0 |— |— | align="left" |INR ''ddd'' |5/10 | align="left" |DDD ← DDD + 1 |- |0 |0 | colspan="3" |DDD |1 |0 |1 |— |— | align="left" |DCR ''ddd'' |5/10 | align="left" |DDD ← DDD - 1 |- |0 |0 | colspan="3" |DDD |1 |1 |0 |''data'' |— | align="left" |MVI ''ddd,data'' |7/10 | align="left" |DDD ← data |- |0 |0 | colspan="2" |RP |1 |0 |0 |1 |— |— | align="left" |DAD ''rp'' |10 | align="left" |HL ← HL + RP |- |0 |0 | colspan="2" |RP |1 |0 |1 |0 |— |— | align="left" |LDAX ''rp'' |7 | align="left" |A ← (RP) [BC or DE only] |- |0 |0 | colspan="2" |RP |1 |0 |1 |1 |— |— | align="left" |DCX ''rp'' |5 | align="left" |RP ← RP - 1 |- |0 |0 |0 |0 |0 |1 |1 |1 |— |— | align="left" |RLC |4 | align="left" |A<sub>1-7</sub> ← A<sub>0-6</sub>; A<sub>0</sub> ← Cy ← A<sub>7</sub> |- |0 |0 |0 |0 |1 |1 |1 |1 |— |— | align="left" |RRC |4 | align="left" |A<sub>0-6</sub> ← A<sub>1-7</sub>; A<sub>7</sub> ← Cy ← A<sub>0</sub> |- |0 |0 |0 |1 |0 |1 |1 |1 |— |— | align="left" |RAL |4 | align="left" |A<sub>1-7</sub> ← A<sub>0-6</sub>; Cy ← A<sub>7</sub>; A<sub>0</sub> ← Cy |- |0 |0 |0 |1 |1 |1 |1 |1 |— |— | align="left" |RAR |4 | align="left" |A<sub>0-6</sub> ← A<sub>1-7</sub>; Cy ← A<sub>0</sub>; A<sub>7</sub> ← Cy |- |0 |0 |1 |0 |0 |0 |1 |0 |''addlo'' |''addhi'' | align="left" |SHLD ''add'' |16 | align="left" |(add) ← HL |- |0 |0 |1 |0 |0 |1 |1 |1 |— |— | align="left" |DAA |4 | align="left" |If A<sub>0-3</sub> > 9 OR AC = 1 then A ← A + 6; then if A<sub>4-7</sub> > 9 OR Cy = 1 then A ← A + 0x60 |- |0 |0 |1 |0 |1 |0 |1 |0 |''addlo'' |''addhi'' | align="left" |LHLD ''add'' |16 | align="left" |HL ← (add) |- |0 |0 |1 |0 |1 |1 |1 |1 |— |— | align="left" |CMA |4 | align="left" |A ← ¬A |- |0 |0 |1 |1 |0 |0 |1 |0 |''addlo'' |''addhi'' | align="left" |STA ''add'' |13 | align="left" |(add) ← A |- |0 |0 |1 |1 |0 |1 |1 |1 |— |— | align="left" |STC |4 | align="left" |Cy ← 1 |- |0 |0 |1 |1 |1 |0 |1 |0 |''addlo'' |''addhi'' | align="left" |LDA ''add'' |13 | align="left" |A ← (add) |- |0 |0 |1 |1 |1 |1 |1 |1 |— |— | align="left" |CMC |4 | align="left" |Cy ← ¬Cy |- |0 |1 | colspan="3" |DDD | colspan="3" |SSS |— |— | align="left" |MOV ''ddd,sss'' |5/7 | align="left" |DDD ← SSS |- |0 |1 |1 |1 |0 |1 |1 |0 |— |— | align="left" |HLT |7 | align="left" |Halt |- |1 |0 | colspan="3" |ALU | colspan="3" |SSS |— |— | align="left" |ADD ADC SUB SBB ANA XRA ORA CMP ''sss'' |4/7 | align="left" |A ← A [ALU operation] SSS |- |1 |1 | colspan="3" |CC |0 |0 |0 |— |— | align="left" |Rcc |5/11 | align="left" |If cc true, PC ← (SP), SP ← SP + 2 |- |1 |1 | colspan="2" |RP |0 |0 |0 |1 |— |— | align="left" |POP ''rp'' |10 | align="left" |RP ← (SP), SP ← SP + 2 |- |1 |1 | colspan="3" |CC |0 |1 |0 |''addlo'' |''addhi'' | align="left" |Jcc ''add'' |10 | align="left" |If cc true, PC ← add |- |1 |1 |0 |0 |0 |0 |1 |1 |''addlo'' |''addhi'' | align="left" |JMP ''add'' |10 | align="left" |PC ← add |- |1 |1 | colspan="3" |CC |1 |0 |0 |''addlo'' |''addhi'' | align="left" |Ccc ''add'' |11/17 | align="left" |If cc true, SP ← SP - 2, (SP) ← PC, PC ← add |- |1 |1 | colspan="2" |RP |0 |1 |0 |1 |— |— | align="left" |PUSH ''rp'' |11 | align="left" |SP ← SP - 2, (SP) ← RP |- |1 |1 | colspan="3" |ALU |1 |1 |0 |''data'' |— | align="left" |ADI ACI SUI SBI ANI XRI ORI CPI ''data'' |7 | align="left" |A ← A [ALU operation] data |- |1 |1 | colspan="3" |N |1 |1 |1 |— |— | align="left" |RST ''n'' |11 | align="left" |SP ← SP - 2, (SP) ← PC, PC ← N x 8 |- |1 |1 |0 |0 |1 |0 |0 |1 |— |— | align="left" |RET |10 | align="left" |PC ← (SP), SP ← SP + 2 |- |1 |1 |0 |0 |1 |1 |0 |1 |''addlo'' |''addhi'' | align="left" |CALL ''add'' |17 | align="left" |SP ← SP - 2, (SP) ← PC, PC ← add |- |1 |1 |0 |1 |0 |0 |1 |1 |''port'' |— | align="left" |OUT ''port'' |10 | align="left" |Port ← A |- |1 |1 |0 |1 |1 |0 |1 |1 |''port'' |— | align="left" |IN ''port'' |10 | align="left" |A ← Port |- |1 |1 |1 |0 |0 |0 |1 |1 |— |— | align="left" |XTHL |18 | align="left" |HL ↔ (SP) |- |1 |1 |1 |0 |1 |0 |0 |1 |— |— | align="left" |PCHL |5 | align="left" |PC ← HL |- |1 |1 |1 |0 |1 |0 |1 |1 |— |— | align="left" |XCHG |4 | align="left" |HL ↔ DE |- |1 |1 |1 |1 |0 |0 |1 |1 |— |— | align="left" |DI |4 | align="left" |Disable interrupts |- |1 |1 |1 |1 |1 |0 |0 |1 |— |— | align="left" |SPHL |5 | align="left" |SP ← HL |- |1 |1 |1 |1 |1 |0 |1 |1 |— |— | align="left" |EI |4 | align="left" |Enable interrupts |- !7 !6 !5 !4 !3 !2 !1 !0 !b2 !b3 !助记符 !周期数 !描述 |- ! colspan="13" | |- ! colspan="5" |SSS DDD !2 !1 !0 ! colspan="2" |CC !ALU !RP ! |- | colspan="5" |B |0 |0 |0 | colspan="2" |NZ | align="left" |ADD ADI (A ← A + arg) |BC |- | colspan="5" |C |0 |0 |1 | colspan="2" |Z | align="left" |ADC ACI (A ← A + arg + Cy) |DE |- | colspan="5" |D |0 |1 |0 | colspan="2" |NC | align="left" |SUB SUI (A ← A - arg) |HL |- | colspan="5" |E |0 |1 |1 | colspan="2" |C | align="left" |SBB SBI (A ← A - arg - Cy) |SP or PSW |- | colspan="5" |H |1 |0 |0 | colspan="2" |PO | align="left" |ANA ANI (A ← A ∧ arg) |- | colspan="5" |L |1 |0 |1 | colspan="2" |PE | align="left" |XRA XRI (A ← A ⊻ arg) |- | colspan="5" |M |1 |1 |0 | colspan="2" |P | align="left" |ORA ORI (A ← A ∨ arg) |- | colspan="5" |A |1 |1 |1 | colspan="2" |N | align="left" |CMP CPI (A - arg) |- ! colspan="5" |SSS DDD !2 !1 !0 ! colspan="2" |CC !ALU ! colspan="2" | |} === 输入/输出方案 === ==== 输入输出端口空间 ==== 8080 支持多达 256<ref>Note: Some Intel datasheets from the 1970s advertise 512 I/O ports, because they count input and output ports separately.</ref> 个[[I/O|输入/输出]](I/O)端口,通过使用端口地址作为操作数的专用 I/O 指令访问。<ref>{{cite book|title=Computer Architecture and Organization|url=https://archive.org/details/computerarchitec0000haye_p5w8|last1=HAYES|first1=JOHN P.|isbn=0-07-027363-4|year=1978|publisher=|pages=[https://archive.org/details/computerarchitec0000haye_p5w8/page/n437 420]–423}}</ref>这种 I/O 映射方案被认为是一个优势,因为它释放了处理器有限的地址空间。许多 CPU 架构相反使用所谓的[[内存映射]] I/O(MMIO),在这种设计中,RAM 和外围芯片使用共同的地址空间。这消除了对专用 I/O 指令的需求,尽管这样的设计可能存在的一个缺点是,由于外围设备通常比内存慢,因此必须使用特殊硬件来插入等待状态。然而,在一些简单的 8080 计算机中,I/O 确实被当作内存单元进行寻址,即“内存映射”,从而不使用 I/O 命令。I/O 寻址有时也可以利用处理器将相同的 8 位端口地址输出到低地址字节和高地址字节的事实(即,IN 05h 会在 16 位地址总线上放置地址 0505h)。类似的 I/O 端口方案被用在向后兼容的 Zilog Z80 和 Intel 8085,以及密切相关的 x86 微处理器系列中。 ==== 独立的堆栈空间 ==== 处理器状态字中的一个位(见下文)指示处理器正在从堆栈访问数据。使用这个信号,可以实现一个独立的堆栈内存空间。这个功能很少被使用。 === 状态字 === 对于更高级的系统,在每个机器周期的开始,处理器在数据总线上放置一个八位状态字。这个字节包含的标志决定了是访问内存还是 I/O 端口,以及是否需要处理中断。 中断系统状态(启用或禁用)也在一个单独的引脚上输出。对于简单系统,其中不使用中断,在某些情况下可能会发现这个引脚被用作额外的单比特输出端口(例如,在[[苏联]]制造的流行的 [[Radio-86RK]] 计算机)。 === 示例代码 === 以下是8080/8085汇编器源代码,用于一个名为memcpy的子程序,该子程序将给定大小的数据块从一个位置复制到另一个位置。数据块一次复制一个字节,数据移动和循环逻辑使用16位操作。 {| |<pre> 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 </pre> |<syntaxhighlight lang="nasm"> ; memcpy -- ; 将内存块从一个位置复制到另一个位置。 ; ; 输入寄存器 ; BC - 要复制的字节数 ; DE - 源数据块的地址 ; HL - 目标数据块的地址 ; ; 返回寄存器 ; BC - 零 org 1000h ;起始地址为1000h memcpy public mov a,b ;将寄存器B的值复制到寄存器A ora c ;寄存器A与寄存器C进行按位或操作,结果存入寄存器A rz ;如果零标志被置位,则返回 loop: ldax d ;从DE指向的地址加载数据到A mov m,a ;将寄存器A的内容存储到HL指向的地址 inx d ;增加 DE inx h ;增加 HL dcx b ;BC减一(不影响标志位) mov a,b ;将B复制到A(以便将BC与零比较) ora c ;A = A | C (B和C都是零吗?) jnz loop ;如果零标志未被置位,则跳转到'loop:' ret ;返回 </syntaxhighlight> |} [[File:Intel_8080_Microprocessor.png|thumb|547x547px|8080 针脚定义]] === 针脚 === 地址总线拥有自己的16个针脚,而数据总线有8个可用的针脚,无需任何复用。使用另外两个针脚(读和写信号),可以非常容易地组装简单的微处理器设备。仅需为独立的IO空间、中断和DMA添加解码处理器针脚信号的芯片。 然而,针脚的负载能力是有限的;即使是简单的计算机通常也需要总线放大器。 处理器需要三个电源(-5V、+5V和+12V)和两个非重叠的高幅度同步信号。然而,至少在苏联后期的版本КР580ВМ80А能够仅使用单一的+5V电源工作,将+12V针脚连接到+5V,将-5V针脚接地。 随芯片提供的文档中的针脚布局表,如下描述针脚: {| class="wikitable" !针脚 !信号 !类型 !指令 |- |1 |A10 |Output |地址总线10 |- |2 |GND |— |地 |- |3 |D4 | rowspan="8" |Bidirectional | rowspan="8" |双向数据总线,处理器还会暂时在此设置“处理器状态”,提供有关处理器当前正在执行的操作的信息: * D0 读取中断命令。响应中断信号时,处理器正在读取并执行一个带有此标志的任意命令。通常,支持芯片会提供子程序调用命令(CALL或RST),将控制权转移到中断处理代码 * D1 读取(低电平意味着写入) * D2 访问堆栈(可能最初计划了一个单独的堆栈内存空间) * D3 无操作,已被HLT指令停止 * D4 向输出端口写入数据 * D5 读取可执行指令的第一个字节 * D6 从输入端口读取数据 * D7 从内存读取数据 |- |4 |D5 |- |5 |D6 |- |6 |D7 |- |7 |D3 |- |8 |D2 |- |9 |D1 |- |10 |D0 |- |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 |激活电平表明处理器已经将“状态字”放置在数据总线上。这个状态字的各个位提供了额外的信息,以支持独立的地址和内存空间、中断和直接内存访问。这个信号在可以用于将数据总线上的处理器状态字写入某个外部寄存器之前,需要通过额外的逻辑处理,例如,[http://www.datasheets360.com/pdf/-4828066515233335508 8238] {{Wayback|url=http://www.datasheets360.com/pdf/-4828066515233335508 |date=20230918030959 }}系统控制器和总线驱动器 |- |20 | +5 V |— | +5伏电源供应 |- |21 |HLDA |Output |直接内存访问确认。处理器将数据和地址引脚切换到高阻抗状态,允许其他设备操纵总线 |- |22 |φ1 |Input |时钟发生器信号的第一相位 |- |23 |READY |Input |等待(利用这个信号,可以暂停处理器的工作。它还用于支持基于硬件的逐步调试模式) |- |24 |WAIT |Output |等待(指示处理器处于等待状态) |- |25 |A0 | rowspan="3" |Output | rowspan="3" |地址总线 |- |26 |A1 |- |27 |A2 |- |28 |12 V |— | +12伏电源供应,这必须是最后连接和第一个断开的电源 |- |29 |A3 | rowspan="12" |Output | rowspan="12" |地址总线;可以根据需求切换到高阻抗状态 |- |30 |A4 |- |31 |A5 |- |32 |A6 |- |33 |A7 |- |34 |A8 |- |35 |A9 |- |36 |A15 |- |37 |A12 |- |38 |A13 |- |39 |A14 |- |40 |A11 |}
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息