编辑“︁
Intel 8080
”︁(章节)
跳转到导航
跳转到搜索
Template:Editnotice load/content
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
=== 命令与指令 === 与许多其他 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 交换。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息